Ich habe einige Probleme mit CakePHP 2.4 während der Arbeit mit AJAX und JSON.
Ich möchte Daten mit einer Ansicht rendern, aber den resultierenden HTML-Code als String in einer Variablen speichern. Danach möchte ich ein Array festlegen, das diese HTML-Zeichenfolge unter anderen Daten enthält, die als JSON-Objekt zurückgegeben werden. Leider habe ich noch nicht den richtigen Weg gefunden.
Mein Controller-Code verwendet bisher die CakePHP-json-Magie:
%Vor%Dies gibt den perfekten JSON in der JavaScript-Konsole aus, abgesehen davon, dass die Daten in $ Daten einfache Daten sind.
Ist es irgendwie möglich, $ Daten an eine View zu übergeben, sie zu rendern, die Ausgabe in einer Stringvariablen $ html zu speichern und $ html an Jobs in jsonResponse statt $ data zu übergeben?
Ja! Sie können eine Ansicht in eine Variable rendern. Sie müssen nur ein Ansichtsobjekt erstellen. In Ihrem Controller Versuchen Sie Folgendes:
%Vor% Die Controller::render()
-Funktion legt den Hauptteil der Antwort fest, indem sie CakeResponse::body()
aufruft und dann das aktuelle CakeResponse
-Objekt zurückgibt. Dies bedeutet, dass Sie die Methode render()
innerhalb der Controller-Aktion aufrufen, ihren Rückgabewert erfassen und dann den CakeResponse::body()
erneut aufrufen können und somit den Antworttextkörper mit der gewünschten Ausgabe ersetzen können.
Beispielcode:
%Vor%Tags und Links ajax json cakephp cakephp-2.4