jQuery AJAX mit Multiple-Array-Daten Parameter
Habe ich erfolgreich gebucht, ein einzelnes array, aber ich kann nicht herausfinden, wie zu senden, mehr als ein array in ein AJAX-post. Hier ist mein code für ein array:
var a = new Array();
//fill array
var a_post = {};
a_post['array1[]'] = a;
$.ajax({
url: "submitOrder.php",
data: a_post,
type: 'post',
success: function(data) {
alert(data);
}
});
Und in submitOrder.php ich habe:
$array1= $_POST['array1'];
foreach ($array1 as $a => $b)
echo "$array1[$a] <br />";
Diese funktioniert einwandfrei. Jedoch, wenn ich versuche, um ein zweites array b_post
zu den data:
Feld, es funktioniert nicht. Ich habe versucht data: {a_post, b_post},
und ein paar Variationen davon, aber ich kann nicht es erhalten, um richtig zu arbeiten. Wenn ich schon dabei bin, wie würde ich dann laden submitOrder.php
nach der Veröffentlichung eher als zeigen eine Warnung an die Daten?
UPDATE
Mit Nicolas' Vorschlag, ich habe diese arbeiten, die Daten zu verändern Feld:
data: {'array1':JSON.stringify(a), 'array2':JSON.stringify(b)},
Habe ich allerdings auch hinzufügen müssen, um den rest des Formulars erfassten Daten durch den Benutzer. Ich kann diese Daten mit $(this).serialize()
aber wenn ich versuchen, hinzufügen, dass die data
Feld, funktioniert es nicht. Wie kann ich diese Daten, um die Zeile oben?
Dank.
LÖSUNG
Was am Ende so funktioniert, wie ich ursprünglich erhofft hatte (mit Nicolas' Hilfe):
var formData = $(this).serializeArray();
var a_string = JSON.stringify(a);
formData.push({name: 'array1', value: a_string});
var b_string = JSON.stringify(b);
formData.push({name: 'array2', value: b_string});
$.ajax({
url: "submitOrder.php",
data: formData,
type: 'post',
success: function(data) {
alert(data);
}
});
InformationsquelleAutor Kevin_TA | 2012-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten die Daten werden umhüllter diese Weise
Dann in PHP:
Können Sie fügen Sie die restlichen Eingänge als auch.
Nur wiederholen, mit allen Eingaben, die Sie senden möchten.
$(this).serialize()
auf das Feld, aber das ist nicht erlaubt. Wie könnte ich auch den rest der Eingabedaten aus dem Formular?Hinzugefügt das, was Sie gefragt
Danke. Ich aktualisiert meine Frage mit der vollständigen Lösung, die funktionierte.
InformationsquelleAutor Nicolás Torres