2011-12-16 43 views
2

我正在使用jQuery和AJAX驗證我的表單,當有人在我的網站上創建新用戶時。我在OOP PHP中進行編程,與jQuery和AJAX一起編程。 我使用這個代碼:jQuery,AJAX - 如何判斷腳本是否返回false

$.ajax({ 
     type: "POST", 
     url: "includes/classes/handler.php?do=addLogin", 
     data: dataString, 
     success: function() { 
      $('.sideBarNewUserWrap').fadeOut(); 
     } 
    }); 
    return false; 

但我怎麼返回一個錯誤信息,如果該電子郵件已經存在?

希望它的信息足夠了,否則我會再添加一些。 感謝在前進:)

* UPDATE *

這是我的PHP檢查是否存在郵件:

$email_count = mysql_num_rows($check_email); 
    if($email_count){ 
     return false; 
    } 

* UPDATE *

 success: function(data){ 

      if(data.error){ 
       $('.sideBarNewUserWrap').fadeOut(); 
      } else { 
       $('.sideBarNewUserError-email').fadeIn(); 
      } 

現在這個樣子很像失敗,因爲。 if(data.error)那麼沒關係?

它不應該是這樣的:

if(date.error){ 
    //Error message 
} 

,而不是其他方式?

那麼,如果我嘗試輸入一個已經存在的電子郵件,它會告訴我,因爲它應該,但爲什麼這個工作?在我眼裏,我在這裏做錯了什麼?

回答

1

你可以得到的迴應在功能上:

$.ajax({ 
     type: "POST", 
     url: "includes/classes/handler.php?do=addLogin", 
     data: dataString, 
     success: function(response) { 
      if (response == "ok") 
      { 
       $('.sideBarNewUserWrap').fadeOut(); 
      } 

      else 
      { 
       // error happend 
      } 
     } 
    }); 
    return false; 

您可以返回字符串,PHP中的int甚至XML,JSON,無論您想在客戶端驗證什麼

0

基本上在handler.php中,您應該驗證電子郵件是否已經存在,然後發送給客戶端(至少)兩個不同的響應(例如0:電子郵件存在,1:ok)。

在成功回調可以讀取響應數據,以便您可以告訴用戶的操作狀況

+0

如果電子郵件存在我已經驗證..如果是的話,我的腳本返回false;因此,沒有進一步的發生。 – skolind 2011-12-16 09:22:11

+0

你的腳本應該返回一個值(string,int,json Object ...),以便你可以在成功函數中讀取它 – fcalderan 2011-12-16 09:23:52

2

PHP:

$result = array('error' => true); // or $result = array('error' => false); 
echo json_encode($result); 

JS:

success: function(response) { 
    if (response.error) { 
     // ... 
    } 
} 
+0

我需要什麼json_encode();對於? – skolind 2011-12-16 09:22:24

1

您可以通過在您的handler.php文件中使用echo來返回數據。 要在jQuery中接收這個參數,只需在Ajax函數的成功函數中放置一個參數。

success: function(returnedValue) 
{ 
// Here you check if returned value e.g. "returnedValue == 1" 
} 
相關問題