Jquery Yii:渲染部分并以JSON格式返回AJAX
根据上面的主题,我对返回数据有一些困惑。因此,当我尝试将渲染部分视图数据从控制器返回到AJAX时,代码如下所示 JQuery 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({
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);
}