Yii: Render Partial-und Zurück zu AJAX im JSON-format
Als pro Thema oben, ich habe einige Verwirrung über die Rückgabe der Daten. Also, wenn ich versuche, eine Rückkehr der render partial view Daten von meinem controller zu AJAX der code wird wie folgt sein.
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);
}
Des codes in den controller, ich hatte zu minimieren, und wenn ich das log der Daten, zurück, es gibt mir die richtigen. Aber, wenn ich die Funktionen json_encode array im controller und ich wieder gehen sehen, die Daten zurückgeben, er gibt mir die falsche.
Obwohl ich eingestellt habe, dataType: 'json' und contentType: "application/json; charset=utf-8", in der JQuery-ajax. Oder header('Content-type: application/json'); in der Steuerung. Es noch gibt die falschen Daten.
Hilfe brauchen, diese sehr schlecht, wie konnte ich nicht beheben Sie dieses problem wie auch fast 2 Tage. 🙁
Es ist ein AJAX-callback dude, er nehme an, um die Rückkehr der HTML-code, der das Rendern des views und halten Sie Sie in einem array, um für mich zu codieren, Sie in JSON und übergeben Sie zurück an den AJAX-callback-Daten.
InformationsquelleAutor Whatever Kitchen | 2012-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf die Daten zurück, die zu JS:
Zwei wichtige Dinge. Die erste ist, ist das Dritte argument
renderPartial()
. Als die doc Staaten:Dies bedeutet, dass anstatt des echo ' Ing aus der gerenderten Ansicht, es wird als string zurückgegeben.
Die zweite ist die CJSON::encode(), die die variable und wandelt es in eine JSON-Repräsentation, die javascript verarbeiten kann.
CJSON::encode()
's Vorteile sind, dass es erfordert keine bestimmten version von PHP (json_encode
benötigt PHP 5.2 oder neuer), und es kann mit Active Records.Danke ernie! Ich kam gerade über die gleiche Frage. Bitte aktualisieren Sie Ihre Antwort auf die Letzte
true
ist wichtig, wie könnte man es nicht sehen. Es ist "versteckt", indem Sie die horizontale BildlaufleisteInformationsquelleAutor ernie