Der Martin: FormData.append - überschreiben neuere Werte ältere?

Beitrag lesen

n'Abend,

    const formData = new FormData();
		formData.append("login", user.value);
		formData.append("login", pass.value);
		console.log(formData.getAll('login')); // ['Name', '123']

Wird der PHP Befehl var_dump($_POST); als response clientseitig aufgefangen, gehen aber alle Werte bis auf den letzten offensichtlich verloren. console.log meldet dann

array(1) {
  ["login"]=>
  string(3) "123"
}

als response.

ja, das liegt daran, wie GET- und POST-Parameter in PHP "angenommen" werden. Da wird der Query-String (für $_GET[]) in einzelne key=value-Pärchen zerlegt und dann eins nach dem anderen in der Art

$_GET[key]=value;

zugewiesen. Treten mehrere gleiche Keys auf, überschreiben sie jeweils die vorangegangenen. Für $_POST[] gilt das analog.

Wenn ich das richtig interpretiere, muss ich hier auf ein Array "ausweichen", in Richtung

formData.append("login[]", user.value);
formData.append("login[]", pass.value);

Dann bekommst du in PHP ein Array mit allen Werten.

Und wenn dem so ist - was bringt dann formData.getAll überhaupt?

Due Frage ist unfair. Stelle nicht in Frage, was Javascript bietet, nur weil PHP an der Stelle anders reagiert. Andere serverseitige Techniken handhaben das vielleicht anders.

Möge die Übung gelingen
 Martin

--
Darmstadt? Ist das nicht da, wo immer der Urologen-Kongress tagt?`