-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

以下のコードが役立つかどうかを確認してください。

<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 に答える
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

Javascript では、変数 i = 2 があります。したがって、最初の入力の名前は「name-2」になります。

PHP では、変数 $i = 1 の for ループがあります。そのため、$_POST['name-1'] を取得しようとします。

そのため、未定義のエラーが発生します。

于 2013-09-05T09:23:07.947 に答える