代码之家  ›  专栏  ›  技术社区  ›  codingbbq

使用jquery和ajax进行PHP验证

  •  0
  • codingbbq  · 技术社区  · 15 年前

    我有一个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 回复  |  直到 11 年前
        1
  •  2
  •   dfilkovi    15 年前

    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请求并始终检查错误变量是否为真,如果为真,则可以使用默认函数进行错误控制。

    希望这有帮助。

        2
  •  0
  •   mkamthan    15 年前

    在您所做的函数定义中: 成功:函数()。{ 引入一个参数,例如:success:function(retval){

    现在,您可以在函数中检查retval的值。 比如,从PHP脚本返回“success”表示成功,而“this email exists”表示失败。 现在,您可以直接在这里进行比较,并执行您想要的任何操作,例如:

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

    等等… 希望这有帮助。

        3
  •  0
  •   thecodedeveloper.com Marco Johannesen    11 年前
    $(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;
    
        });
    });
    

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