2016-04-05 8 views
0

Im Moment versuche ich, ein Kundenmanagementsystem zu machen, wo ich mehrere Kunden gleichzeitig hinzufügen kann.foreach() wie man Wert von jedem Textfeld in dieser "Gruppe" von Eingaben erhält

Ich habe ein JavaScript-Skript, das mir erlaubt, neue Zeilen von Informationen hinzuzufügen, die ich ausfüllen kann, über Kunden, aber mein Problem hier ist, dass wie bekomme ich alle Informationen, separat für jede Zeile.

Ein html Beispiel ist dies:

<input type="text" name="name[]" /> 
<input type="text" name="lastname[]" /> 
<input type="text" name="dob[]" /> 
<hr> 
<input type="text" name="name[]" /> 
<input type="text" name="lastname[]" /> 
<input type="text" name="dob[]" /> 

Und das immer auf dem Gehen zu halten, bis ich brauche nicht mehr Felder.

Als ich die Informationen in die Datenbank für jede Zeile einzeln eingeben müssen, ich brauche einen Skript automatisch diese drei Felder zu nehmen und in in einen MySQL-Befehl wie diese

mysqli_query($con, "INSERT INTO customers (name, lastname, dob) VALUES ('" . $name . "', '" . $lastname . "', '" . $dob . "'"); 

und das es braucht für jede Reihe zu tun ist.

Ich habe versucht, etwas mit foreach und nested foreach zu machen, aber ich kann nicht scheinen, damit es funktioniert.

Vielen Dank im Voraus.

+0

Bitte zeigen Sie, was Sie bisher versucht haben (= Code). – djot

Antwort

1

würde ich den Namen Ihrer Eingaben ändern wie

<input type="text" name="data[n][name]" /> 
<input type="text" name="data[n][lastname]" /> 
<input type="text" name="data[n][dob]" /> 

wo n Start von 0 auf was auch immer. Dann können Sie eine foreach verwenden:

foreach($_POST['data'] as $data) { 
    // $data['name'] 
    // $data['lastname'] 
    // $data['dob'] 
} 
+0

Ich habe dies zu einem Javascript hinzugefügt, wo es automatisch zählt, und es funktioniert perfekt! Vielen Dank. – Ismail

1

Verwenden Sie eine vorbereitete Anweisung anstelle der Verkettung von Zeichenfolgen. Verwenden Sie dann eine foreach-Schleife, die die entsprechenden Werte von jedem $_POST Parameterarray erhält.

$stmt = mysqli_prepare($con, "INSERT INTO customers (name, lastname, dob) VALUES (?, ?, ?)"); 
mysqli_bind_param($stmt, "sss", $name, $lastname, $dob); 

foreach ($_POST['name'] as $i => $name) { 
    $lastname = $_POST['lastname'][$i]; 
    $dob = $_POST['dob'][$i]; 
    mysqli_execute($stmt); 
} 
Verwandte Themen