2016-09-19 57 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']中的一個數組,所以你可以輕鬆地遍歷它們,而不管數。