1

回答/質問のページがあります。管理者の質問のリストを取得します。管理者はこれを参照してください。今、私は各質問への回答を送信する必要があります。だから私は各質問のためtextareaにポストアクションで入れて形成します。今、私は質問メッセージの回答を送信するときに、外部のphpファイルにメッセージを送信する場合に必要です= true; メッセージ(ID)の削除(jqueryスライドアップ効果)。このために私はjquery送信フォームコード(更新ページなし)を持っていますが、私は大きな問題を抱えています。これは1つのフォームでのみ機能しました!すべてのリストフォーム(質問+回答フォーム)では機能しません。複数のフォームでコードを処理する方法は?私は正しい方法を選びましたか?

htmlコード:

<form action="insert.php?id=42" id="forms" method="POST" name="form">
<div id="box">
<div class="messagequestion"></div>
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div>
</div>
</form>
<form action="insert.php?id=45" id="forms" method="POST" name="form">
<div id="box">
<div class="messagequestion"></div>
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div>
</div>
</form>
<form action="insert.php?id=48" id="forms" method="POST" name="form">
<div id="box">
<div class="messagequestion"></div>
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div>
</div>
</form>
<form action="insert.php?id=50" id="forms" method="POST" name="form">
<div id="box">
<div class="messagequestion"></div>
<div class="messagereply"><textarea></textarea><input type="submit" class="submit" name="submit" value="submit"></div>
</div>
</form>

ありがとう

4

3 に答える 3

0

あなたの主な問題はおそらくあなたがIDを再利用しようとしていることです。すべてのフォームにはのIDが"forms"あり、IDも共有してい"box"ます。

すべてのIDは、要素を一意に識別する必要があります。要素を分類する必要がある場合は、クラスを使用します。id="forms"すべてのフォームをにclass="reply_form"変更id="box"してから、すべてのdivをに変更することをお勧めしますclass="reply_box"。次に、#formsと#boxに設定されているスタイルを、代わりに.reply_formと.replyに設定されているスタイルに変更します。

編集-OPとのいくつかの議論の後にjsfiddleで行われた微調整。

http://jsfiddle.net/gvnfg/5/

于 2012-04-06T12:45:53.270 に答える
0

セレクターを変更するだけです。id属性はhtmlで一意である必要があります

$("[name='form']").submit(function() {
    $this = $(this);    
    $.ajax({
        type: 'POST',
        url: $(this).attr('action'),
        data: $(this).serialize(),
        cache: false,       
        beforeSend: function() {
            $('#loading').show();
            $('#result').hide();
        },
        success: function(data) {
            if(data==1){
              $('#loading').hide();
              $('#result').fadeIn('slow').html("ok");
              $('#result').addClass('true');
              $this.slideUp(1000);
            }
        else {
            $('#loading').hide();
            $('#result').fadeIn('slow').html(data);
            $('#result').addClass('errors');
        }}
    });
     e.preventDefault();
    return false;
});
于 2012-04-06T12:49:12.880 に答える
-1

Jquery.each()メソッドを使用します。

$(document).ready(function() {
    $('#forms').each(function() {

       this.submit(function() {
           $.ajax({ ... });
       });
    });

})
于 2012-04-06T12:46:49.073 に答える