0

PHP 経由でフォームを送信するようになりましたが、AJAX に少し苦労しています。送信時に、 res が true ではなく false に設定されているかのように、常にエラーが発生します。学びたいので、コードをいじって自分の答えを探してみましたが、必要なものが見つかりませ

私が不適切に行ったことについて、正しい方向に向けていただけませんか?

どうもありがとうございました!

参照用のコード:

$('#contact_form').submit(function() {

    var this_form = $(this);
    $.ajax({
        type: 'post',
        data: this_form.serialize(),
        url: 'scripts/send_email.php',
        success: function(res) {
            if(res == "true") {
                $(this_form)[0].reset();
                $(".notice").removeClass("error").text("Thank you for contacting us!").addClass("success").fadeIn("fast");
            } else {
                $(".notice").text("Please check all fields and try again.").addClass("error").fadeIn("fast");
            }
        }
    });

});
4

3 に答える 3

0

send_email.phpファイルで、成功した場合は「success」をエコーし​​ます。

次に、AJAX呼び出しを次のように変更します。

success: function(data) {
if (data == "success") {do stuff} else {do failure stuff}
}
于 2012-07-10T19:13:22.860 に答える
0

resが表す値のために、真実の比較が false を返しているようです。値が「true」の文字列であることを確認しています。そうでない場合は、else コードをトリガーします。

プロパティは、 AJAXsuccess送信が成功した場合にのみ実行されます。比較チェックを の目的の出力send_email.php、つまり 'Success!'に設定する必要があります。または「失敗!」適切な取り扱いを示します。

成功(データ、テキストステータス、jqXHR)

リクエストが成功した場合に呼び出される関数。この関数には 3 つの引数が渡されます。dataType パラメータに従ってフォーマットされた、サーバーから返されたデータ。ステータスを説明する文字列。jqXHR (jQuery 1.4.x では XMLHttpRequest) オブジェクト。jQuery 1.5 の時点で、success 設定は関数の配列を受け入れることができます。各関数が順番に呼び出されます。

jQuery で AJAX リクエストを処理するための追加情報については、ドキュメントを参照してください。

success: function(res) {
    if (res == "Success!") {
        $(this_form)[0].reset();
        $(".notice").removeClass("error").text("Thank you for contacting us!").addClass("success").fadeIn("fast");
    } else {
        $(".notice").text("Please check all fields and try again.").addClass("error").fadeIn("fast");
    }
}
于 2012-07-10T19:06:07.387 に答える
0

尋ねてみてください:

if(res == true)

代わりは。また、この種の問題を回避する良い方法は、firebug または chrome デバッガーを使用して JavaScript をデバッグすることです。chrome を使用している場合は、コードに次の行を追加できます。

debugger;
if(res == "true")

JavaScript はそこで停止するので、変数を調べて何が起こっているかを確認できます。「オプション --> ツール --> 開発者ツール --> スクリプト」に移動して開くことができます。

お役に立てれば :)

于 2012-07-10T19:08:45.763 に答える