2017-07-29 4 views
0

Ich habe 2 Formen wie folgt aus:Multiple Form mit demselben Namen Array

Formular No.1:

<input type="text" name='name[]' placeholder = 'Input your name' > 
<input type="text" name='vehicles[]' placeholder = 'Input your first vehicle'> 
<input type="text" name='vehicles[]' placeholder = 'Input your second vehicle'> 
.... 
<input type="text" name='vehicles[]' placeholder = 'Input your xxx vehicle'> 

Formular No.2:

<input type="text" name='name[]' placeholder = 'Input your name' > 
<input type="text" name='vehicles[]' placeholder = 'Input your first vehicle'> 
<input type="text" name='vehicles[]' placeholder = 'Input your second vehicle'> 
.... 
<input type="text" name='vehicles[]' placeholder = 'Input your xxx vehicle'> 

Der Fahrzeugeingabe ist dynamisch Eingangs hinzugefügt von JavaScript, so wie identifizieren Sie das Fahrzeug von der richtigen Person gehört? Ich habe Daten abgerufen, aber ich weiß nicht, wie das Fahrzeug von jeder Person geteilt wird.

+0

müssen Sie unterschiedliche Namen in jedem Eingabefeld geben, um alle Eingabewerte zu halten. –

+0

so hat jedes Formular einen anderen Namen? –

+0

alle Eingaben sind in einer einzigen Form oder Mehrfachform? –

Antwort

0

Ich habe eine einfache Lösung für Ihre Fahrzeugfelder implementiert, hoffentlich können Sie diesen Code an Ihre Bedürfnisse anpassen.

eine Zahl am Ende des Namens hinzufügen, wenn Sie es mit JavaScript erstellen, das heißt:

var counter = 0; 
function addInput() { 
    document.getElementById("form").insertAdjacentHTML("beforeend", "<input type=\"text\" name=\"vehicles"+counter+"\" placeholder=\"Input vehicle #"+counter+"\">"); 
    counter++; 
} 

Dann in PHP, können Sie einfach eine Liste aller Einzelteile erhalten über $_POST gesendet:

$vehicles = array_keys($_POST); //Get all of the $_POST values 
for ($i=0;$i<count($vehicles);$i++) { //Loop through all $_POST values 
    if (strpos($vehicles[$i], "vehicles")!==false) { //If the name contains "vehicles" 
     $value = $_POST[$vehicles[$i]]; //Get the value of the field 
     echo $i . " " . $value . "<br>"; //Echo it out as a test 
    } 
} 
0

Sie erstellen können nicht Eingänge mit name[] und vehicles[] Namen für jede beigefügten Formular, sondern wickeln Eingänge in Benutzer (oder einen anderen gewünschten Namen) Array und etwas tun, wie users[].name[] und users[].vehicles[]. (i nicht sicher über die richtige Syntax, aber die Sache ist es wickeln)

Verwandte Themen