簡體   English   中英

從php返回值到ajax成功和錯誤

[英]Return value from php to ajax success and error

我正在通過參考教程來使用Jquery mobile和php進行用戶身份驗證。 但是本教程的后端是mongoDB。 我希望我的應用程序連接到PHP和mysql。

我對教程代碼進行了一些更改,我對php返回錯誤或成功感到困惑。

AJAX代碼

 $.ajax({
            type: 'POST',
            url: BookIt.Settings.signUpUrl,
            data:"submitted=" + "1" + "&mobile=" + mobileNumber + "&firstName=" + firstName + "&lastName=" + lastName + "&password=" + password,
            dataType: "json",
            success: function (resp) {
            alert(resp);
                console.log("success");
                if (resp.success === true) {
                    $.mobile.navigate("signup-succeeded.html");
                    return;
                }
                if (resp.extras.msg) {
                    switch (resp.extras.msg) {
                        case BookIt.ApiMessages.DB_ERROR:
                        case BookIt.ApiMessages.COULD_NOT_CREATE_USER:
                            // TODO: Use a friendlier error message below.
                            $ctnErr.html("<p>Oops! BookIt had a problem and could not 2 register you.  Please try again in a few minutes.</p>");
                            $ctnErr.addClass("bi-ctn-err").slideDown();
                            break;
                        case BookIt.ApiMessages.MOBILENUMBER_ALREADY_EXISTS:
                            $ctnErr.html("<p>The mobile number that you provided is already registered.</p>");
                            $ctnErr.addClass("bi-ctn-err").slideDown();
                            $txtMobileNumber.addClass(invalidInputStyle);
                            break;
                    }
                }

            },
            error: function (e) {
                console.log(e.message);
                // TODO: Use a friendlier error message below.
                $ctnErr.html("<p>Oops! BookIt had a problem and could not register you.  Please try again in a few minutes.</p>");
                $ctnErr.addClass("bi-ctn-err").slideDown();
            }
        });

MY PHP返回JSON編碼輸出

echo json_encode("success");

API消息

var BookIt = BookIt || {};
BookIt.ApiMessages = BookIt.ApiMessages || {};
BookIt.ApiMessages.EMAIL_NOT_FOUND = 0;
BookIt.ApiMessages.INVALID_PWD = 1;
BookIt.ApiMessages.DB_ERROR = 2;
BookIt.ApiMessages.NOT_FOUND = 3;
BookIt.ApiMessages.EMAIL_ALREADY_EXISTS = 4;
BookIt.ApiMessages.COULD_NOT_CREATE_USER = 5;
BookIt.ApiMessages.PASSWORD_RESET_EXPIRED = 6;
BookIt.ApiMessages.PASSWORD_RESET_HASH_MISMATCH = 7;
BookIt.ApiMessages.PASSWORD_RESET_EMAIL_MISMATCH = 8;
BookIt.ApiMessages.COULD_NOT_RESET_PASSWORD = 9;
BookIt.ApiMessages.PASSWORD_CONFIRM_MISMATCH = 10;
BookIt.ApiMessages.MOBILENUMBER_ALREADY_EXISTS=11;
BookIt.ApiMessages.USERNAME_ALREADY_EXISTS=12;

我如何將錯誤/成功返回到此ajax,所以它工作正常

指教教程

您正在檢查

if (resp.success === true)

這意味着json數據必須采用以下格式:

{"success":true}

由以下人員產生:

echo json_encode( ['success'=>true] ); // or array() instead of [] for PHP < 5.4

同樣,對於錯誤( if (resp.extras.msg) ),

echo json_encode( [ 'extras' => ['msg' => $errorcode] ] );

產生此JSON($ errorcode = 2(BookIt.ApiMessages.DB_ERROR))

{"extras":{"msg":2}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM