Ajax调用未使用Yii框架正确显示消息


Ajax call not displaying message properly using Yii framework

所以问题来了:

尝试使用.ajax进行ajax调用。但是,有些地方出现了问题,因为我的控制器没有重定向到好的视图文件,并且我的页面上没有显示任何内容。

以下是ajax调用发生的位置

        $('#validate').on('click',function(){
        var data = []; // data container
        // collect all the checked checkboxes and their associated attributes
        $("table#subsection_table input[type='checkbox']:checked").each(function(){
            data.push({
                subsectionid : $(this).val(),
                sectionid : $(this).data('sectionid'),
                year : $(this).data('year')
           })
       });
        // JSON it so that it can be passed via Ajax call to a php page
        var data = JSON.stringify(data);

        $.ajax({
            url : "<?php echo Yii::app()->createAbsoluteUrl("scheduler/AjaxExample"); ?>",
            type: "POST",
            data : "myData=" + data,
            success : function()
            {
                alert("in success");
                $("#ajax-results").html(data);
                $("#ajax-results").dialog({ width: 500, height: 500})
            },
            error: function()
            {
                alert("there was an error")
            }
        })
        console.log(JSON.stringify(data));
        $('#dialog').html(data).dialog({ width: 500, heigh: 500});
    });

现在这是我的控制器代码:

          public function actionAjaxExample()
{
    $post_data = $_POST['myData'];

    $this->renderPartial('_ajax', array(
            'data'=> $post_data,
        )
    );
}

尝试重定向到_ajax视图文件:

          <?php
           echo '<script language="javascript">';
           echo 'alert("message successfully sent")';
           echo '</script>';
           echo "HI FROM BACKEND! here's what you gave to PHP: <br>";
           print_r($data);
           ?>

所以我显然做错了什么,但是。。。我似乎找不到哪里,因为ajax调用确实发生了(至少在我的#validate-on-click事件中)。然而,最后一个视图文件并没有显示它的警告框或"来自后端的你好"。

尝试:删除var data = JSON.stringify(data);

更改

data:{myData:data},

我认为问题出在url的引号上。请检查控制台中是否出现JavaScript错误。如果您遇到一些错误,请更改此

 $.ajax({
        url : "<?php echo Yii::app()->createAbsoluteUrl("scheduler/AjaxExample"); ?>",
        type: "POST",

$.ajax({
        url : '<?php echo Yii::app()->createAbsoluteUrl("scheduler/AjaxExample"); ?>',
        type: "POST",

如果没有得到任何错误,请检查控制台中的xHr选项卡,网址是什么,您的ajax正在命中。如果有任何问题,请告诉我