我用jQuery做了一个小表单,当点击一个按钮时,它会添加一个带有名称的新输入。
我添加到页面的jQuery:
<script>
$(document).ready(function() {
var i = 2;
$("span").click(function() {
$("#add").before("<tr><td>Name</td><td><input type='text' name='name-"+i+"' /></td></tr>");
$("#numper").val(i);
i++;
});
});
$("#numper").val(i)
是一个隐藏的输入,可以知道我添加了多少次输入。
当我检查控制台和元素(Chrome中的F12)时,字段被添加,隐藏的字段被正确更改,但当我试图用PHP获取值时,它说添加的输入是未定义的。
for($i = 1; $i <= $_POST['numper']; $i++) {
echo $_POST['name-'.$i];}
如果你能帮我解决这个问题,我将不胜感激!
谢谢!
我会简单地以不同的方式处理您的需求,命名所有输入,以便PHP将其读取为数组,如下所示:
<input name="name[]" ..... />
PHP:
foreach($_POST['name'] as $index => $input_value) {
....
}
请检查以下代码是否对您有帮助。
<html>
<head>
<script type='text/javascript' src='//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#addbutton').click(function() {
var i = parseInt($('#numper').val()) + 1;
$('#table').prepend("<tr><td>Name</td><td><input type='text' name='name-"+i+"' /></td></tr>");
$('#numper').val(i);
});
});
</script>
</head>
<body>
<form method='post' action='<?php echo $PHP_SELF;?>'>
<table>
<tr>
<td>
<input type='button' id='addbutton' value='Add new input box' />
</td>
</tr>
</table>
<table id='table'>
<tr>
<td>Name</td>
<td>
<input type='text' name='name-1' />
</td>
</tr>
<tr>
<td>
<input type='hidden' id='numper' name= 'numper' value='1' />
<input type='submit' value='submit' />
</td>
</tr>
</table>
</form>
</body>
<?php
for ( $i = 1; $i <= $_POST['numper']; $i++ ) {
echo $_POST['name-' . $i] . '<br>';
}
?>
在Javascript中,变量i=2。因此,您的第一个输入将有一个名称"name-2"。
在PHP中,您有一个变量为$i=1的for循环。因此,它将尝试获取$_POST['name-1']。
因此,它将给出未定义的错误。
对于jquery部分,您可以编写这个
$(document).ready(function(){
$("#btn1").click(function(){
$("p").append("<input name='whatever' type='text' class='whatever'>");
});
});
如果您想要php部分,请通知我