我正在使用jQuery创建尽可能多的输入文本框,如下所示:
<script type="text/javascript">
$(document).ready(function() {
$('#names').on({
blur: function() {
var name = $("<p><input class='input' type='text' /></p>")
var nullFields = 0;
$(this).closest('div#names').find('input.input').each(function(){
if($(this).val() == ""){
nullFields++;
}
});
console.log(nullFields);
if(nullFields <= 1){
$('#names').append(name.fadeIn(500));
}
}
}, 'input');
});
</script>
使用$_POST['blah']
和mysql_query("INSERT INTO ...")
将静态文本框插入数据库不是问题,但如何插入动态创建的文本框的值?我知道我必须在文本框中创建不同的名称,并且我认为MySQL查询将通过某种循环。
修改
有问题的网站是here,特别是在第4步。如上所述,第3步非常简单。
答案 0 :(得分:1)
这是一个让您入门的示例,而不是完整的解决方案。 您为名称创建一个数组,然后让php插入每个数组项
var currentArrayNum = 1;
$('#someClickable').click(function(){
$('#td').append('<input name="arrayName['+currentArrayNum+']" value="" />');
currentArrayNum += 1;
});
PHP:
foreach ($_POST as $key){
if (is_array($key)){
foreach ($key as $key2 => $value){
//$key2 will equal arrayName[currentArrayNum]
//$value will equal the user input for the text field
do some stuff
}
答案 1 :(得分:0)
您可以创建名称之外的数组,只需尝试:
<input type="text" name="post_input[input_1]" value="">
<input type="text" name="post_input[input_2]" value="">
提交后,你会得到$ _POST [“post_input”]中的数组,其中包含键input_1和input_2及其指定的值。然后你只需将它们作为普通数组循环,例如
$aTextFields = $_POST["post_input"];
foreach( $aTextFields as $sValue ) {
...
}