2009-12-29 62 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