我正在使用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查询将通过某种循环进行。
编辑
有问题的网站在这里,特别是在第 4 步。如上所述,第 3 步非常简单。
这是一个帮助您入门的示例,而不是完整的解决方案。你为名称创建一个数组,然后让 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
}
你可以用名称创建数组,只需试试这个:
<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 ) {
...
}