2009-12-29 82 views
0

我有一個jquery ajax窗體。 我在服務器端驗證重複的用戶名和電子郵件ID。 它工作正常,沒有jQuery/ajax。php驗證使用jquery和ajax

在我的PHP代碼我已經使用死()返回,如果有任何錯誤發生。我的主要問題是在阿賈克斯

這裏是代碼

$(document).ready(function() { 

    $("form#regist").submit(function() { 
     var str = $("#regist").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "submit1.php", 
      data: $("#regist").serialize(), 
      success: function() { 

       $("#loading").append("<h2>you are here</h2>"); 

      } 

     }); 
     return false; 


    }); 
}); 

成功功能的正常使用。如果我的數據是有效的,那麼它會被添加到數據庫中,如果我的數據重複,那麼它不會被添加到數據庫中。現在我想知道的是如何從我的PHP文件中返回錯誤並在成功事件中使用它。在此先感謝..

編輯:這是我的PHP腳本看起來如何提前

$query = "SELECT username from userdetails WHERE username = '$username'"; 
$q = mysql_query($query) or die("error" . mysql_error()); 
$numrows = mysql_num_rows($q); 
if($numrows > 0) 
{ 
die("username already exixt"); 
//should i put something like this 
//$error = "username already exists"; 
//return $error; --->> i am not sure about this.. 
} 

感謝

回答

2

PHP端:

if($numrows > 0) 
{ 
echo "username already exist"; 
} 

JavaScript端:

success: function(msg) 
    { 
    if(msg == 'username already exist') alert(msg); 
    } 

但是,這是如此簡陋,如果您打算開發這進一步嘗試讀取JSON的一些文章,所以你可以使用JSON與服務器端進行通信。而且你也應該嘗試使用一些默認的錯誤控制,像PHP返回數組:然後在JavaScript端

echo json_encode(array('error' => true, 'notice' => 'username exists')); 

(jQuery的),使用JSON Ajax請求,並經常檢查是否錯誤變量是真還是假,如果可能的話,您可以使用默認功能進行錯誤控制。

希望這有助於。

+0

感謝它幫助..我想我應該更深入探究json ..感謝 – noobcode

0
$(document).ready(function() { 

    $("form#regist").submit(function() { 
     var str = $("#regist").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "submit1.php", 
      data: $("#regist").serialize(), 
      success: function (msg) { 
       alert(msg); 
      } 

     }); 
     return false; 

    }); 
}); 

這裏從服務器端發送消息,並顯示它,我怎麼證明它:)

0

在你做的功能定義如下: 成功:function(){ 引入一個參數,如:成功:功能離子(retVal){

現在在函數中,您可以檢查retVal的值。 假設您從PHP腳本返回,成功案例爲「成功」,失敗爲「此電子郵件存在」。 現在,您可以直接在這裏比較這和做任何你想做的,如:

如果(retVal的==「這個電子郵件存在」){ window.alert('請重新輸入電子郵件,這個記錄存在!'); }

等等...... 希望這會有所幫助。

+0

原諒我的無知。我如何從PHP腳本返回。 我的猜測: 如果我有說 $ retval =如果值存在檢查分貝; if($ retval) { return $ retval; } 你的意思是我應該在我的PHP腳本中有這樣的代碼。感謝您的回覆,我真的很抱歉有這樣一個問題。謝謝 – noobcode