2016-09-19 61 views
1

我有一个动态表单,用户可以选择输入的数量。我不知道表单可能有多少输入,我想将结果存储在一个数组中。 这里我的HTML:从多个输入存储数据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> 

我的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); 
}); 

我怎样才能添加的每个输入的值到一个数组,收集它在后PHP请求?

谢谢!

回答

2

只是改变

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

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

要附加Abdus的答案,可以使用$ _POST ['child']作为包含i的值作为键的数组,并将输入字段值作为值; –

+0

感谢您的帮助,它解决了我的问题!也感谢@ jeroen! –

2

变化:

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

要:

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

谢谢,我现在能够发送动态数据! –

1

让所有的孩子在1个阵列最简单的方法,是使用HTML的数组:当

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 

现在你发送表单,你将拥有所有的值作为$_POST['child']中的一个数组,所以你可以轻松地遍历它们,而不管数。