0
   ....... while(mysql_fetch_array($loop))
    {..............
    echo '
    <form name="myform" method="POST" action="reply.php">
    <textarea style="width:400px;" name="text'.$idanswer.'" id="text'.$idanswer.'"></    textarea>
    <input type="submit" name="submit'.$idanswer.'" id="submit'.$idanswer.'"     value="Submit">
     <input type="hidden" name="idquest" id="idquest" value="'. $question_id .'">
     <input type="hidden" name="idansw" id="idansw" value="'. $idanswer .'">
     <input type="hidden" name="idsend" id="idsend" value="'. $logOptions_id .'">
     <input type="hidden" name="namer" id="namer" value="'. $usr .'">
     </form>';
     }

それはうまくいきます。しかし、ページを更新せずにjqueryでこのフォームを送信したいのですが、関数で変数を渡す方法がわかりません。
私はこのようなものが必要です:

    <script type="text/javascript">
    $(document).ready(function() {
    $('submit'.$idanswer.'').click(function (e) {
            e.preventDefault();
            var dataString = 'text'.$idanswer.'=' + $('#text'.$idanswer.'').val() + '&idquest=' + $("#idquest").val() + '&idansw=' + $("#idansw").val() + '&idsend=' + $("#idsend").val() + '&namer=' + $("#namer").val();
            jQuery.ajax({
            type: "POST",
            url: "reply.php",
            data:dataString,
            success:function(response){
                $("#respond").prepend(response);
                                $('#text'.$idanswer.'').val('');
            },
            error:function (xhr, ajaxOptions, thrownError){
                alert(thrownError);
            }
        });
    });
});
</script>

変数のため、これは機能しません。何か案が?

4

2 に答える 2

0

各フォームに一意の送信ボタンを付けidて、送信ボタンを通常のボタンに変更してinput="button"、クリック時にフォームを送信しないようにしonclick、次のようにボタンにプロパティを追加します。

<form name="myform" id="form'.$idanswer.'" method="POST" action="reply.php">
<input type="button" class="submit" name="submit'.$idanswer.'" id="submit'.$idanswer.'"     value="Submit" onClick="submitForm(\'form'.$idanswer.'\')" />

ajax関数を作成し、各serialize()フォーム入力値を手動で追加する代わりにすべてのフォーム入力値を取得するメソッドを使用して、各フォームからパラメーターを取得します。

$(document).ready(function() {
    function submitForm(form){
       jQuery.ajax({
            type: "POST",
            url: "reply.php",
            data: $('#' + form).serialize(),
            success:function(response){
                $("#respond").prepend(response);
                                $('#text'.$idanswer.'').val('');
            },
            error:function (xhr, ajaxOptions, thrownError){
                alert(thrownError);
            }
        });
    }
});
于 2013-04-24T01:35:12.110 に答える