使用jquery和ajax进行php验证

时间:2009-12-29 06:50:43

标签: php jquery ajax validation

我有一个jquery ajax表单。 我在服务器端验证了重复的用户名和电子邮件ID。 没有jquery / ajax就可以正常工作。

在我的php代码中,如果发生任何错误,我使用die()返回。我的主要问题是在ajax

这是代码

$(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..
}

提前致谢

3 个答案:

答案 0 :(得分:2)

Php方面:

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

Javascript方面:

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

但是这太粗糙了,如果你计划进一步开发这个JSON的文章,那么你可以使用json与服务器端进行通信。而且你应该尝试使用一些默认的错误控制,比如使用php返回一个数组:

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

然后在javascript端(jquery),使用json ajax请求并始终检查错误变量是否为true,如果是,则可以使用默认函数进行错误控制。

希望这会有所帮助。

答案 1 :(得分: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;

    });
});

这里从服务器端发送消息并显示它,我如何显示它:)

答案 2 :(得分:0)

在你做过的函数定义中:     成功:function(){ 引入一个参数,如:success:function(retVal){

现在在函数中,您可以检查retVal的值。 比如,您从PHP脚本返回,“成功”表示成功案例,“此电子邮件存在”表示失败。 现在你可以在这里直接比较它,做任何你想做的事,比如:

if(retVal =='此电子邮件存在') {   window.alert('请重新输入电子邮件,此记录存在!'); }

依旧...... 希望这会有所帮助。