2016-09-19 2 views
1

Ich habe ein dynamisches Formular, wo der Benutzer die Anzahl der Eingänge wählen kann. Ich weiß nicht, wie viele Eingaben das Formular haben könnte und möchte die Ergebnisse in einem Array speichern. Hier mein HTML:Daten von mehreren Eingängen speichern php

<select name="number-children" id="number-children"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

Meine jQuery:

$("#number-children").change(function() { 
    var str = ""; 
    var count = Number($("#number-children option:selected").val()); 
    for (var i = 0; i < count; i++) { 
     str += '<label class="col-sm-2 control-label" for="child-'+i+'">Child ' + i 
       + '</label> <div class="col-sm-10"><input type="text" name="child-'+i+'" class="form-control" id="child-'+i+'"></input></div>'; 
    } 
    $("#children").html(str); 
}); 

Wie kann ich jeden Eingangswert in ein Array es in einem Beitrag php Anfrage zu sammeln?

Danke!

Antwort

2

Ändern nur

<input type="text" name="child-'+i+'" class="form-control" id="child-'+i+'"></input> 

zu

<input type="text" name="child['+i+']" class="form-control" id="child-'+i+'"></input> 
+1

Um die Antwort von Abdus hinzuzufügen, können Sie $ _POST ['child'] als Array verwenden, das die Werte von i als Schlüssel und Eingabefeldwerte als Werte enthält. –

+0

Danke für Ihre Hilfe, es hat mein Problem gelöst! Danke auch an @jeroen! –

2

Wechsel:

$("#children").html(str); 

An:

$("#children").append(str); 
+0

Danke, ich bin in der Lage jetzt die dynamischen Daten zu senden! –

1

Der einfachste Weg, um alle Kinder in 1-Array zu bekommen, ist ein Array in HTML zu verwenden:

str += '<label class="col-sm-2 control-label" for="child-'+i+'">Child ' + i 
      + '</label> <div class="col-sm-10"><input type="text" name="child[]" class="form-control" id="child-'+i+'"></input></div>'; 
                      ^^ here 

Nun, wenn Sie senden das Formular, Sie haben alle Werte als Array in $_POST['child'], so dass Sie problemlos über sie unabhängig von der Schleife Nummer.

Verwandte Themen