jQuery Ajax gibt HTML und AND-Daten zurück

8

Ich bin nicht sicher, ob es irgendeinen Weg gibt, dies zu tun oder nicht, aber das würde so viele meiner Probleme lösen, wenn es eine einfache Lösung dafür gibt.

Was ich tun muss / kann, ist, dass ich HTML und JSON in meinem Erfolg der ajax-Anfrage zurückgebe. Der Grund dafür ist, dass ich eine Datei anfordern und die gesamte Seite zurückgeben möchte, aber ich möchte auch einen bestimmten Satz von Informationen von der Seite in json zurückgeben können, damit ich sie für andere Dinge verwenden kann.

Das mache ich jetzt:

%Vor%

Das wäre, was ich gerne tun könnte:

%Vor%

Auf der Seite, die zurückgegeben wird, würde ich angeben, was der Titel sein soll. (Zum Beispiel, wenn es ein Profil ist, würde ich den Namen des Benutzers zurückgeben)

    
Dylan Cross 10.11.2012, 15:35
quelle

4 Antworten

7

Der Versuch, den Rückgabewert so zu mischen, dass er Präsentation und Daten enthält, erscheint als Verwirrungspotenzial. Warum nicht in zwei Aufrufe aufteilen und die Daten beim Erfolg der anderen holen?

Etwas wie:

%Vor%     
jheddings 10.11.2012, 15:40
quelle
10

HTML und Daten, die in JSON eingepackt sind

Sie können es tun, indem Sie ein 2-Elemente-JSON-Array zurückgeben. Das erste Element enthält HTML und das zweite Element enthält ein weiteres JSON-Array mit den Daten darin. Sie müssen es nur vorsichtig auspacken, ohne etwas zu brechen.

Serverseite

%Vor%

Kundenseite

%Vor%

Anmerkung 1: Ich denke, das ist es, was @hakre in seinem Kommentar zu Ihrer Frage gemeint hat.

Anmerkung 2: Diese Methode funktioniert, aber ich stimme @jheddings zu, dass es wahrscheinlich eine gute Idee ist, Präsentationen und Daten nicht zu mischen. Coding Karma wird wieder zu beißen kommen.

    
Jonathan Spiller 10.11.2012 16:23
quelle
1

Sie haben auch die Möglichkeit, die Daten in html5 Datenattribute einzubinden

Zum Beispiel, wenn Sie eine Liste von Tieren zurückgeben

%Vor%

Sie können dann die benötigten Daten mit

erfassen %Vor%

Manchmal ist es auch sinnvoll, Ihre Anfrage in zwei verschiedene Ajax-Aufrufe zu trennen.

    
NoPyGod 12.11.2012 03:32
quelle
0

Sie können eine Bibliothek verwenden, die das automatisch ausführt, wie Ссылка . Verwenden Sie

%Vor% %Vor%

Sie können auch phery.views verwenden, um automatisch einen Teil der Site automatisch zu laden, ohne sich um clientseitigen Code kümmern zu müssen. Sie müssten eine eindeutige ID in den Container eingeben, container in diesem Beispiel:

%Vor% %Vor%     
pocesar 12.11.2012 03:21
quelle

Tags und Links