Jquery Yii:渲染部分并以JSON格式返回AJAX

Jquery Yii:渲染部分并以JSON格式返回AJAX,jquery,ajax,yii,renderpartial,Jquery,Ajax,Yii,Renderpartial,根据上面的主题,我对返回数据有一些困惑。因此,当我尝试将渲染部分视图数据从控制器返回到AJAX时,代码如下所示 JQuery AJAX: $.ajax({ url: "<?php echo $this->createUrl('ajaxrequest');?>", type: "POST", data: {affordableCarPrice: ccarprice},

根据上面的主题,我对返回数据有一些困惑。因此,当我尝试将渲染部分视图数据从控制器返回到AJAX时,代码如下所示

JQuery AJAX:

$.ajax({
         url: "<?php echo $this->createUrl('ajaxrequest');?>",
         type: "POST",
         data: {affordableCarPrice: ccarprice},                        
         success: function(data){
            console.log(data);
         }
});
控制器内的代码,我必须最小化它,当我记录返回数据时,它会给出正确的代码。但是,当我在控制器中使用json_对数组进行编码,然后返回查看返回数据时,它给出了错误的数据

尽管我在jqueryajax中设置了数据类型:“json”和contentType:“application/json;charset=utf-8”。或标题('Content-type:application/json');在控制器中。它仍然返回错误的数据


在这方面非常需要帮助,因为我几乎有两天没能解决这个问题(

要将数据返回到JS:

public function actionAjaxrequest(){               
    $carListingView[] = $this->renderPartial("_budgetNewCarsListing", array('newCarListing' => $newCarListing), true);
    $carListingView[] = $this->renderPartial("_budgetUsedCarsListing", array('usedCarListing' => $usedCarListing), true);

    echo CJSON::encode($carListingView);
}
两件重要的事情。第一件是
renderPartial()
的第三个参数。如下所示:

是否应返回呈现结果而不是 向最终用户显示

这意味着它将作为字符串返回,而不是回显渲染视图


第二个是,它接受变量并将其转换为JSON表示,javascript将能够处理它。
CJSON::encode()
的优点是它不需要任何特定版本的PHP(
JSON\u encode
需要PHP5.2或更高版本),并且它可以处理活动记录。

您可以通过“返回”返回浏览器上的按钮?这是一个AJAX回调dude,它假设返回呈现视图的HTML代码并将它们保存在一个数组中,以便我将它们编码为JSON并传递回AJAX回调数据。dude,当我在JavaScript中得到它时,结果并不是我想要的结果:OThank you ernie!我刚刚遇到了相同的问题n、 请更新您的答案,指出最后一个
true
是必需的,因为您可能看不到它。它被水平滚动条“隐藏”
public function actionAjaxrequest(){               
    $carListingView[] = $this->renderPartial("_budgetNewCarsListing", array('newCarListing' => $newCarListing), true);
    $carListingView[] = $this->renderPartial("_budgetUsedCarsListing", array('usedCarListing' => $usedCarListing), true);

    echo CJSON::encode($carListingView);
}