我有一个动态表单,用户可以在其中选择输入数量。我不知道表单可以有多少输入,我想将结果存储在一个数组中。 这是我的HTML:
<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请求中收集它?
谢谢!
答案 0 :(得分:2)
更改:
$("#children").html(str);
致:
$("#children").append(str);
答案 1 :(得分: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>
答案 2 :(得分: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']
中将所有值都作为一个数组,这样无论数字如何,您都可以轻松地遍历它们。