2

1ページに複数のフォームがあります。すべて次のようになります。ID値は変更されますが、オプションは類似している可能性があります。

<form class="test"><td>4000</td>
<td align='center'><input type='radio' name='radio' value='car' checked></td>
<td align='center'><input type='radio' name='radio' value='boat' ></td>
<td align='center'><input type='radio' name='radio' value='Plane' ></td>
<input type='hidden' name='id' value='4000'/>
<input type='hidden' name='location' value='local'/>
<div class="form" style="display: none;">
</div></form>

JQueryを使用して、3つのラジオボタンのいずれかが選択されたときにこれを送信しようとしています。

<script>
$("input[name='radio']").click(function() {
    var CurrectForm=$(this).parents('.test:first');
    $.post(
        'do.php',
        CurrectForm.serialize(),
        function( response ) {
            CurrectForm.find('#form').html( response );
               show( response );
        }
    );
} );
</script>

私は上記と同様にチェックボックスとドロップダウンリストを使用しましたが、これらは正常に機能しました。しかし、これは値をdo.phpページに送信していないようです。送信された値は、divフォームに表示されます。結果var_dump($_POST); を実行すると、空の配列になります。

誰かが私を正しい方向に向けることができますか?ありがとう

フォームを変更すると、これは機能するようです。

<td><form class="test">
<input type='radio' name='radio' value='car' checked>
<input type='radio' name='radio' value='boat' >
<input type='radio' name='radio' value='Plane' >
<input type='hidden' name='id' value='4000'/>
<input type='hidden' name='location' value='local'/>
<div class="form" style="display: none;">
</div></form></td>

なぜ変更すると機能するのですか?

実例のあるJfiddle:) http://jsfiddle.net/QvpH5/

4

1 に答える 1

0

私の推測では、クラスを持つページには複数のフォームがありますtest。何が起こっているのかというと、を使用すると、最初にすべての祖先が検索され、次にを検索parents()することに気づきません。これにより、クリックされたフォームに関係なく、最初のフォームの値が返されます。 .test:first

このjsFiddleを見て、修正を確認してください(.parentsを.parentに変更してください):http://jsfiddle.net/SDzzr/

于 2013-03-19T18:39:21.537 に答える