Wie kann ich wieder ein array/json-Objekt mit json-Objekte über einen ajax-php-Aufruf?
Im Grunde, was ich versuche zu tun, ist für die Rückgabe der Ergebnisse einer mysql-Abfrage. Ich weiß, wie man jede Zeile der Abfrage-Ergebnisse in Ihre eigene JSON-Objekt, jetzt bin ich gerade kämpfen, mit einer Weise, so dass, wenn es mehrere Zeilen von Ergebnisse, um Sie wieder in meine jquery.
In meinem jquery, nenne ich das $.ajax () - Funktion und ich habe keine Probleme damit. Mein problem liegt im Erfolg Teil, wo ich möchte in der Lage sein, etwas zu tun, wie die folgenden:
$.ajax ({
type: "POST",
url:"select.php",
data: {columns : "*",
table : "tbUsers",
conditions : "" },
success: function(results) {
foreach (results as obj)
{
JSON.parse(obj);
$("#page").html(obj.id + " " + obj.name);
}
}
});
Ich möchte in der Lage sein zu iterieren durch die Ergebnis-variable wie ein array von JSON-Objekten. Die Ergebnisse, die variable ist eine Zeichenfolge, die darin besteht, die Ausgabe der php-Datei. So lassen meine Frage ist dann eher, wie kann ich es ändern, so dass die Funktion bekommt ein array oder wie kann ich das ändern in ein?
Meiner php-Datei derzeit gibt so etwas wie dieses:
[{"0":1, "1":"name1", "id":1, "name":"name1"} , {"0":2, "1":"name2", "id":2, "name":"name2"}]
JSON.parse(obj);
sollten aus der Schleife heraus und was ist das problem an den Erfolg ?JavaScript muss nicht
foreach
Schleife.warum nicht senden Sie nur eine große json-string, anstatt mehrere kleinere?
Aber es tut nicht weh, geben Sie es sowieso. Wenn alles vermeidet es Probleme mit keine Nebenwirkungen. Durch die Angabe, wenn Sie Ihre php-Fehler, und gibt nichts zurück, es wird senden Sie Ihre ajax-den Fehler-callback statt Erfolg mit einem string-Ergebnis.
InformationsquelleAutor wizzkid | 2013-09-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der
php
können SieIn Ihrem
success
Rückruf können SieEine Demo, um Ihnen zu helfen zu verstehen,.
in welcher Weise ist
.done
besser alssuccess:
? sicher,.done
mehr verwendet, aber es ist nicht "besser", es ist nur ein weiterer Weg, es zu tun.InformationsquelleAutor The Alpha
Probieren Sie etwas wie:
Hinweis: die dataType: "json" - So analysieren Sie alle in ein JSON-Objekt(s) für Sie.
Editiert, sorry, dass war nicht allzu klar.
richtig... aber es gibt keine solche Sache wie ein JSON-Objekt. es ist nur ein Objekt. Und, da er den Umgang mit einer sql-Abfrage, ich Wette, das Ergebnis wird als array zurückgegeben von Objekten, und es ist nicht vorgeschlagen, um eine Schleife über ein array mit einer for-in-Schleife.
dataType: "json"
ist unnötig, wenn die PHP setzt den content-type zuapplication/json
. Der Vorteil ist, dass mit Datentyp heißt, es gehen in der Fehler-handler, wenn ungültige json zurückgegeben wurde, wenn eine Fehler-handler angegeben wurde.Vereinbart, aber da war er speziell json-Dekodierung das Ergebnis in seinem Beispiel-code bin ich davon ausgegangen, dies war nicht der Fall.
InformationsquelleAutor Ricky S
Zitat aus deiner Frage
müssen Sie zum senden einer großen json-string anstelle von mehreren kleineren. Sie werden nicht in der Lage, um eine Schleife durch die Antwort, denn es ist nicht ein einzelnes json-Strings (es sind mehrere json-strings).
außerdem ist es besser, die Kette ajax-callbacks, weil Sie als Optionen entfernt von jquery in die Zukunft.
http://api.jquery.com/jQuery.ajax/
"Optionen entfernt von jquery in die Zukunft." Nein werden Sie nicht. Die Abschreibungen bemerken, ist für den Erfolg Fehler und komplette Methoden, nicht Optionen.
ja, aber die Frage lässt vermuten, dass es mehrere kleinere json-strings an den server gesendet.
bereiten Sie Ihren code für Ihre eventuelle Beseitigung" finden Sie unter api.jquery.com/jQuery.ajax
Es ist nicht entfernt wird. Re-Lesen Sie den zitieren Sie in Ihrer Antwort, es ist nicht das verweisen auf die
success:
error:
undcomplete:
Optionen.InformationsquelleAutor kasper Taeymans
Können Sie einfach nur wieder einer großen JSON-Ergebnis. Weil jeder Ihrer JSON-Objekte gewickelt werden kann in einer anderen.
JSON kehren Sie wäre dann ein array von Objekten (was auch immer Sie sein mögen)
Dann in Ihren Erfolg-Funktion, können Sie iterieren über jedes Objekt und aktualisieren Sie die Seite:
InformationsquelleAutor Alexander Mistakidis
zurück, Da gewickelt Erfolg Dann in Ihren Erfolg-Funktion,können Sie iterieren über jedes Objekt und aktualisieren Sie die Seite, die Sie gerade wieder einen großen JSON-Ergebnis.Weil jeder Ihrer JSON-Objekte gewickelt werden kann in einer anderen. Die JSON-Sie kehren wäre dann ein array von Objekten (was auch immer Sie sein mögen)
InformationsquelleAutor nanthan