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

时间:2016-03-28 03:41:44

标签: php jquery ajax yii

所以这就是问题所在:

尝试使用.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点击事件中)。但是,最后一个视图文件没有显示它的警告框或“从后端打招呼”。

2 个答案:

答案 0 :(得分:0)

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

变化

data:{myData:data},

答案 1 :(得分:0)

我认为问题在于网址的引用。 请检查您是否在控制台中收到一些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正在点击。如有任何问题,请通知我