存储来自多个输入php的数据

时间:2016-09-19 08:23:57

标签: php jquery

我有一个动态表单,用户可以在其中选择输入数量。我不知道表单可以有多少输入,我想将结果存储在一个数组中。 这是我的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请求中收集它?

谢谢!

3 个答案:

答案 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']中将所有值都作为一个数组,这样无论数字如何,您都可以轻松地遍历它们。