Ich versuche, ein multidimensionales Array mit JS zu erstellen, so dass ich einige Daten mit einem Ajax-Aufruf an PHP posten kann. Es ist wahrscheinlich sehr einfach, aber mein Wissen über JS ist sehr wenig in Bezug auf dieses spezielle Ding ...
Hier ist ein JSFiddle mit dem Code
Was ich will ist eine Art Array wie folgt:
%Vor%Ich versuche, das Objekt-Array mit diesem Code zu generieren:
%Vor% Wenn ich die Variable dataRows
an die Konsole ausgabe, erhalte ich folgende Ausgabe:
Und so weiter ...
Wenn ich die Variable mit console.log(JSON.stringify(dataRows));
protokolliere, bekomme ich folgende Ausgabe:
Wenn ich den var data =...
-Teil (erster Codeblock) innerhalb der Konsole ausführe und die Daten auf der Konsole protokolliere, erhalte ich die folgende Ausgabe (ich habe sie zur besseren Lesbarkeit erneut mit der Funktion 'JSON.stringify' eingeloggt) :
Wenn ich print_r
der POST
-Wert in PHP, bekomme ich die folgende Ausgabe:
Wenn ich die Ajax-Anfrage mit Chrome debugge, kann ich sehen, dass Form Data
2 undefineds
bekommen hat:
Wenn ich es also richtig verstehe, wird das Objekt nicht richtig erstellt und daher wird es nicht richtig mit Ajax gesendet. Und deshalb kann PHP mit den Post-Daten nichts anfangen ...
Also meine Frage ist ziemlich einfach ... Was mache ich falsch / wie behebe ich dieses Problem?
Sie mischen Arrays und Objekte. Wenn Sie in Javascript {key:value}
verwenden, möchten Sie ein Objekt und nicht ein Array. Wenn du [value,value,value]
willst, ist das ein Array. Wenn Sie x=[{}]
sagen, erstellen Sie eigentlich ein Objekt innerhalb eines Arrays, aber Sie setzen Eigenschaften für das Array (Arrays sind auch Objekte) und nicht für das richtige Objekt.
Am wahrscheinlichsten ist es, Objekte einfach überall zu verwenden und alle Arrays loszuwerden:
%Vor%was eine Struktur wie
erzeugt %Vor%Tags und Links javascript arrays ajax object multidimensional-array