php恢复使用jquery添加的输入


php recover inputs added with jquery

我用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部分,请通知我