2015-11-08 82 views
0

我正在使用Jquery mobile & php通過引用教程進行用戶身份驗證。但教程後端是mongoDB。我希望我的應用程序連接到PHP & mysql。從php到ajax的成功和錯誤返回值

我對教程代碼進行了一些更改,我對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,所以它做工精細

Tutorial am referring

回答

1

你檢查

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(與$錯誤代碼= 2(BookIt.ApiMessages.DB_ERROR))

{"extras":{"msg":2}} 
+0

你好@Kenney這個總是返回錯誤函數 – Raj

+0

在你的'error:function(e)'中嘗試'console.log(e)',查看返回的內容。也許PHP scipt有語法錯誤? – Kenney

+0

php日誌文件爲空。 我試過alert(console.log(e));它的說法不明確 – Raj