Mehrdimensionale Arrays per ajax an PHP

Ok, ernsthaft zu kämpfen hier. Ich habe einige Probleme, die versuchen, senden eine multdimensional array an PHP über ajax. Hier ist, was ich versucht haben:

Zu vereinfachen, anstatt zu kopieren-einfügen in eine Wand ein code:

    peoplearray[0]  =  [name] => 'john'
                       [age]  => '28'
                       [sex]  => 'Male'
    peoplearray[1]  =  [name] => 'julie'
                       [age]  => '20'
                       [sex]  => 'Female'

    main_array['item'] = 'x';
    main_array['something'] = 'x';
    main_array['another'] = 'x';

Möchte ich, um dies zu php über post. Ich dachte, ich kann auch einfach verbinden Sie zusammen, als ich multidimensional bin eh so :

    main_array['peoplearray'] = peoplearray;

nun den ajax:

//var data = JSON.stringify(main_array);

var send = $.ajax({
        type: "POST",
        cache: false,
        url: "theurl",
        data: {data:main_array} //I do change this `main_array` when using the above stringify!
});


send.done(function(msg) {
console.log(msg);
})

in PHP bin ich gerade dabei das folgende jetzt:

$data= $_POST['data'];
print_r($data);

in firebug: (an empty string)

wenn ich die var data = JSON.stringify(main_array); unkommentiert bekomme ich die folgende: [][

wenn ich $data = json_decode($_POST['data']); auf die php bekomme ich:

Array ( )

Grundsätzlich die main_array ich begreife nicht brauchen, um ein array-und so kann ich das Zeug über das kein problem, aber was ich tun müssen, ist Holen Sie sich die peoplearray über, so dass ich tun kann, einige foreach etc... mit in php. Jede Hilfe wäre sehr geschätzt, die ich bin sicher, ich bin einfach nur dumm!

EDIT: Die Argumentation hinter diesem ist, dass peoplearray haben könnte 0 oder 100 Einträge, so dass ich nur brauchen, um es zu php, so kann ich foreach es zu tun, die DB-Eingänge. Wenn es ein besserer Ansatz wäre ich sehr dankbar zu hören, wie ich es bin noch ziemlich neu in diesem.

EDIT: Dank an Nicola ' s Antwort auf alles ist vorbei einwandfrei außer der wichtige Teil, die mainarry.peoplearray - es ist nicht angezeigt, in der die Rückkehr console.log und ich kann nicht darauf zugreifen, in PHP. Alle Lösungen auf dieser oder muss ich die foreach-Intelligenz in javascript und schicken Sie einfach alles einzeln?

kannst du die ganzen JS-Funktion, die macht des ajax-request? wenn Sie die Konsole.log(main_array) (vor dem Aufruf von $.ajax), was zeigt es im firebug?
Ich erhalte das richtige Ergebnis mit der Konsole.log(main_array), wenn es zu tun, bevor das JSON-Format.stringify. Nach dem JSON.stringify bekomme ich: []. Soweit die ajax-das ist alles was ich mache, derzeit. In der Tat ist es die einzig wahre Kopie und paste! Nur bis zu diesem Punkt hat mich für immer debugging-arrays in Chrom ist ein Nein, Nein, habe ich gerade herausgefunden.

InformationsquelleAutor Zac | 2012-03-30

Schreibe einen Kommentar