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

Schreibe einen Kommentar