2

PHPを介してその値を送信してmySQLデータベースに保存したい複数のフォームを含むページがあります。私の問題は、ここで尋ねられる質問(AJAXを使用して複数のフォームを送信する)と非常に似ていますが、理想的には、処理されてデータベースに保存される各フォームonChange()を送信したいという点が異なります。

私のフォームは一般的に次のようになります。

<form name="form1" id="form1" action="" method="POST"> 
  <input type="text" class="input-block-level" placeholder="Placeholder text">
  <input type="text" class="input-block-level" placeholder="Placeholder text">
</form>
....
<form name="form2" id="form2" action="" method="POST"> 
  <input type="text" class="input-block-level" placeholder="Placeholder text">
  <input type="text" class="input-block-level" placeholder="Placeholder text">
</form>
....

そして私の現在のjQuery/AJAXコード:

$(document).ready(function () {
    $('#form1').change(function () {
    $.post('process.php', $("#form1").serialize(), function(data) {
        $('#results').html(data);
        });
    });

});

理想的には、フォームごとにこのスニペットをコピーして貼り付ける必要はありませんが(さまざまなフォームがたくさんあります)、代わりに、フォームが変更されたときにどのフォームでも機能するコードのブロックを作成できます。どんな助けでも大歓迎です。

4

1 に答える 1

1

すべてのフォームにCSSクラスを追加し、それらすべてを取得して同じ仕事をすることができます。

$(document).ready(function () {

    // Retrieve all form on the page
    $('.formAjax').change(function () {
        $.post('process.php', $(this).serialize(), function(data) {
            // Update the result area
            $('#results').html(data);
        });
    });
});

すべてのフォームに適切なCSSクラスを追加したと仮定します。

<form name="form1" id="form1" action="" class="formAjax" method="POST"> 

注:各フォームのIDは役に立ちません

于 2013-01-08T03:17:05.080 に答える