POST eines assoziativen Arrays in PHP

7

Ich habe folgendes Formular:

%Vor%

BEARBEITEN

Ist es möglich, die beiden Werte in ein assoziatives Array BEFORE zu übergeben? Ich möchte es in dieser Form weitergeben:

%Vor%

Ich brauche das, weil ich es vermeide, das Skript der Ziel-PHP-Datei (options.php) zu ändern

Danke.

    
user1134475 27.12.2012, 07:08
quelle

7 Antworten

20

Hier ist eine Methode, die reines HTML verwendet, das Sie fast genau dorthin bringt, wo Sie sein wollen, und nur HTML verwendet:

%Vor%

Was würde Sie in PHP geben:

%Vor%

Was können Sie dann ( einschließlich Desinfektion ) wie folgt tun:

%Vor%

BEARBEITEN

Oder ... Sie möchten auf das deptid im Attribut input name verweisen und es verwenden, um die Zeile für einen Abteilungsnamen zu ändern? Das scheint so etwas zu bedeuten:

%Vor%

Welche Ausgaben:

%Vor%

Ссылка

Das Problem dabei ist, dass der Wert $deptid zu einem Wert wird, der nicht direkt benannt oder referenziert wird. Ich denke, dass es aufgrund dieser Abstraktion des Werts vom Server zum Client und zurück potentiell problematisch ist, zu implementieren, also würde ich stattdessen empfehlen, was ich oben habe. Es ist in der Praxis kein großer Unterschied, aber es ist mehr oder weniger selbstdokumentierend.

Beachten Sie, wenn Sie eine Liste von Abteilungen serialisieren möchten, ist es ein wenig komplizierter. Sie könnten dies zum Beispiel versuchen:

%Vor%

Dies würde einen indizierten Wert für jedes input hinzufügen. Allerdings ... Sie würden nicht direkt assoziiert werden. Sie würden stattdessen zwei nullindizierte Arrays für jeden Schlüssel erhalten.

Was ich in diesem Fall vorschlagen würde, ist die Verwendung von Javascript, um die input -Elemente jeder neuen Abteilung hinzuzufügen, so dass Sie jeder eine Zahl wie folgt geben können:

%Vor%

Oder führen Sie die POSTBACK-Methode der alten Schule aus und verwenden Sie PHP, um $POST['options'] zu zählen und "manuell" eine neue "Zeile" von Eingaben mit demselben Index hinzuzufügen. Es ist eine gewöhnliche Falle, also musst du nur darüber nachdenken, wenn du irgendwann danach suchst.

    
Jared Farrish 27.12.2012 07:12
quelle
5

$_POST ist bereits ein assoziatives Array und Ich empfehle Ihnen, Dinge nicht zu komplizieren, weil $_POST bereits die Daten aus Ihrem Formular enthält .

%Vor%

und das assoziative Array, das Sie erhalten, ist im name-Attribut der Eingabeelemente in Ihrem Formular (einschließlich textarea) organisiert und benannt

Andere Einblicke

Wie ich Ihren Code sehe, möchten Sie die Daten deptname auf deptid setzen, wenn sie den serverseitigen PHP-Code erreichen. Nun, das, was Sie tun können, ist, dass Sie es einfach dem Schlüssel deptid

zuweisen %Vor%     
Mp de la Vega 27.12.2012 07:10
quelle
3
%Vor%     
Tahir Yasin 27.12.2012 07:14
quelle
0

$_POST ist bereits ein assoziatives Array.

Sie können ein Array des von Ihnen benötigten Formulars neu erstellen, indem Sie einfach $_POST einer Variablen zuweisen

%Vor%

Jetzt $ myarray ist, was Sie benötigen. Mach var_dump($myvar); .

    
LoneWOLFs 27.12.2012 07:23
quelle
0

Erstellen Sie ein JS-Objekt mit der entsprechenden Struktur, konvertieren Sie es in JSON mit JSON.stringify() , machen Sie es POST und führen Sie dann json_decode($_POST['data'],true) .

aus

Sie haben eine genaue Kopie von JS-Objekt zu PHP-assoziierten Array. Löschen Sie den zweiten Parameter von true , um ein PHP-Objekt zu erhalten.

    
bearfriend 27.06.2013 15:16
quelle
-1

Warum möchten Sie das tun? Aber Sie können "Arrays" über Formulare wie folgt senden:

%Vor%     
David Harris 27.12.2012 07:10
quelle
-1
%Vor%     
Omiga 27.12.2012 07:13
quelle

Tags und Links