使用jquery添加的php恢复输入
我用jQuery做了一个小表单,当点击一个按钮时,它会添加一个带有名称的新输入 我添加到页面的jQuery:使用jquery添加的php恢复输入,php,javascript,jquery,post,dynamic,Php,Javascript,Jquery,Post,Dynamic,我用jQuery做了一个小表单,当点击一个按钮时,它会添加一个带有名称的新输入 我添加到页面的jQuery: <script> $(document).ready(function() { var i = 2; $("span").click(function() { $("#add").before("<tr><td>Name</td><td><input type='text' name='na
<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++;
});
});
如果你能帮我解决这个问题,我将非常感激
谢谢 我只想用一种不同的方式处理您的需求,命名所有输入,以便PHP将它们作为一个数组来读取,如下所示:
<input name="name[]" ..... />
在Javascript中,变量i=2。因此,您的第一个输入将有一个名称“name-2” 在PHP中,有一个变量为$i=1的for循环。因此,它将尝试获取$u POST['name-1']
因此,对于未定义,它将给出错误。对于jquery部分,您可以编写以下代码
for($i = 1; $i <= $_POST['numper']; $i++) {
echo $_POST['name-'.$i];}
$(document).ready(function(){
$("#btn1").click(function(){
$("p").append("<input name='whatever' type='text' class='whatever'>");
});
});
$(文档).ready(函数(){
$(“#btn1”)。单击(函数(){
$(“p”)。追加(“”);
});
});
如果您需要php部分,请通知我请检查下面的代码是否对您有帮助
<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>
$(文档).ready(函数(){
$(“#添加按钮”)。单击(函数(){
var i=parseInt($('#numper').val())+1;
$(“#表”)。前缀(“名称”);
$('numper').val(i);
});
});
你是否在使用jquery添加的输入中添加了“name”属性?当然,它就在那里,会编辑帖子问题,忘记在问题中添加它。你能显示html代码吗?完全正确,你需要添加name属性,我以前遇到过这个问题,我解决了这个问题,就像用户Lan说的一样,请发布一篇帖子,这样我们就可以更好地理解你的代码。我知道,我初始化了一个字段“name-1”,这就是为什么我=2它发生了同样的事情,不是说未定义,只是用jquery添加的输入没有出现。最好使用浏览器开发工具(即chrome和firefox中的F12)单击“添加新输入”按钮后查看HTML。这肯定和我经常使用的一样有效,所以要么您的输入是在外部添加的,要么您的javascript没有使用正确的名称。如果在PHP脚本的顶部打印($\u POST),以便查看发送的内容,结果会是什么?我按F12(在chrome中)并在单击“添加”按钮后查看HTML,是的,它添加了名称。另外,我不知道为什么,我注意到表单在添加任何输入之前关闭,但它可以发送第一个静态表单。我添加了一张照片:1-选择并加载将显示表单的页面。2-当点击+角色时,它添加了数千个输入,名称如我所述,我不知道为什么它显示表单关闭,但至少,第一个输入是正确发送的,就像你接受了答案一样,但基本上你的输入在表单之外,所以当表单提交时不会提交。我回答了这个问题,问题是,我不知道,表格里面的表格似乎不起作用,所以我把表格标签放在了表格外面,现在可以了,谢谢!这几乎是一样的,只是我需要“之前”而不是“附加”。输入与它的名称一起添加,但由于某些原因,在提交或接收值时不起作用
<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>';
}
?>