1

jQueryモーダルフォームから非常に単純なログインフォームを送信しようとしています。

$(  "#dialog-form"  ).dialog({
    var url = "../scripts/sign_up.php"; 
    $.ajax({
        type: "POST",
        url: url,
        data: $("#dialog-form").serialize(),
        success: function(data){
            alert("it works")
        }
    });
});

これはAjaxを試す最初の実際のショットであり、成功方法を実行するのに問題があります。スクリプトが適切な場所にあり、dialog_formのIDが適切であることを確認しました。

この情報を間違って送信していますか?Ajaxリクエストのトラブルシューティングを行う良い方法はありますか?

今、私は情報を取得しようとしているだけで、質問のために、フォームの他のコードを削除しました。

4

1 に答える 1

4

まず、Ajaxリクエストにも関数を追加するerrorことをお勧めします-それはエラー処理に役立つかもしれません:

error: function (jqXHR, textStatus, errorThrown) {
    alert(textStatus);
    alert(errorThrown);
}

次に、スクリプトからAjaxリクエストにデータをどのように送り返しますか?スクリプトからデータをエコーバックしない場合、リクエストはスクリプトが正常に実行されたことを認識しません。

したがって、AJAX呼び出しに以下を追加することをお勧めします。

dataType: "json",

そして、次のようにPHPスクリプトからデータを返します。

$data = array("success"=> true);
echo json_encode($data);
exit;

完全に(スクリプトを使用して):

$(  "#dialog-form"  ).dialog({
    var url = "../scripts/sign_up.php";
    $.ajax({
        type: "POST",
        url: url,
        dataType: "json",
        data: $("#dialog-form").serialize(),
        success: function(data) {
            if (data.success) {
                alert("it works")
            }
            else {
               alert("it failed, but no server error!");
            }
        }
        error: function (jqXHR, textStatus, errorThrown) {
            alert("server error");
            alert(textStatus);
            alert(errorThrown);
        }
    });
});
于 2013-03-24T20:20:58.790 に答える