gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:32:55 24 4
gpt4 key购买 nike

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

JQuery AJAX:

$.ajax({
url: "<?php echo $this->createUrl('ajaxrequest');?>",
type: "POST",
data: {affordableCarPrice: ccarprice},
success: function(data){
console.log(data);
}
});

Yii Controller

public function actionAjaxrequest(){               

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

var_dump($carListingView);
}

Controller 内部的代码,我已将其最小化,当我记录返回数据时,它给了我正确的数据。但是,当我在 Controller 中使用 json_encode 数组时,我回去查看返回数据,它给了我错误的数据。

尽管我在 JQuery ajax 中设置了 dataType: 'json' 和 contentType: "application/json; charset=utf-8"。或者 header('Content-type: application/json');在 Controller 中。它仍然返回错误的数据。

非常需要这方面的帮助,因为我几乎两天都无法解决这个问题。 :(

最佳答案

将数据返回给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() 的第三个参数。作为doc states :

whether the rendering result should be returned instead of being displayed to end users

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

第二个是CJSON::encode() ,它接受变量并将其转换为 JavaScript 能够处理的 JSON 表示形式。 CJSON::encode() 的优点是它不需要任何特定版本的 PHP(json_encode 需要 PHP 5.2 或更高版本),并且它可以处理 Active记录。

关于jquery - Yii:部分渲染并以 JSON 格式返回 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11674030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com