-1

我用 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];}

如果您能帮我解决这个问题,我将不胜感激!

谢谢!

4

4 回答 4

1

我会简单地以不同的方式满足您的要求,命名您的所有输入,以便 PHP 将它们作为数组读取,如下所示:

<input name="name[]" ..... />

PHP:

foreach($_POST['name'] as $index => $input_value) {

   ....

}
于 2013-09-05T09:08:27.877 回答
0

在 Javascript 中,变量 i = 2。因此,您的第一个输入将具有名称“name-2”。

在 PHP 中,你有变量 $i = 1 的 for 循环。所以它会尝试获取 $_POST['name-1']。

所以,它会给未定义的错误。

于 2013-09-05T09:23:07.947 回答
0

对于 jquery 部分,你可以这样写

$(document).ready(function(){

$("#btn1").click(function(){
$("p").append("<input name='whatever' type='text' class='whatever'>");
});


});

如果你想要 php 部分,然后通知我

于 2013-09-05T09:29:38.897 回答
0

请检查以下代码是否对您有帮助。

<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>';
}
?>
于 2013-09-05T09:45:42.100 回答