简体   繁体   English

我想检查用户是否存在

[英]I would like to check user existence

Here is the form to have ajax check out user existence. 这是让ajax签出用户存在的表格。

<!DOCTYPE html>

<html>
    <head><title>Register new user!</title>
    <script src="jquery-1.7.1.min.js"></script>
    </head>
    <body>
        Username:
        <input type="text" name="username" id="username"/><span id="user"></span><br/>
        Password:
        <input type="password" name="password" id="password"/><br/>
        <input type="button" value="Register" name="submit" id="submit" onclick="register_user();"/>
    </body>
    <script>
        function register_user()
        {
            $.ajax(
                {
                    type:"POST",
                    data:username,
                    url:"userexists.php"                    
                })
            .fail(function()
                  {
                    $('#user').html("This user already exists");
                  }
            );                
        }
    </script>
</html>

And here is the userexists.php module 这是userexists.php模块

<?php
    // connection to the db
    define(IPHOST,"localhost");
    define(DBPASSWORD,"");
    define(DBUSER,"root");
    define(DATABASE,"ajaxtest");
    define(TABLENAME,"at");

    $conn=mysql_connect(IPHOST,DBUSER,DBPASSWORD) or die(mysql_error());
    mysql_select_db(DATABASE) or die(mysql_error());
    $username=$_POST('username');
    $sql="SELECT username FROM ".TABLENAME." WHERE username=".$username;
    $query=mysql_query($sql);
    if(0!=mysql_numrows($query))
    {
        //
    }
    else
    {

    }
?>

But I am stuck to really figure out how the ajax function actually works, what should I enter the blank field after I know that the entered username has been used, for example ? 但是我一直坚持要真正弄清楚ajax函数实际上是如何工作的,例如,在知道使用了输入的用户名之后,我应该在空白字段中输入什么? I don't understand ajax at all. 我完全不了解ajax。

You need to return a JSON encoded array (look at http://php.net/manual/en/function.json-encode.php ). 您需要返回一个JSON编码的数组(请参见http://php.net/manual/en/function.json-encode.php )。 It will essentially return something like this: 它将本质上返回如下内容:

if(0!=mysql_numrows($query))
    {
        echo '{';
        echo '"myMessage":"'.$username." was found'",';
        echo '"myStatus":"1",';
        echo '}';
    }
    else
    {
        echo '{';
        echo '"myMessage":"'.$username." was NOT found'",';
        echo '"myStatus":"0",';
        echo '}';
    }

Then, your AJAX handles it something like this: 然后,您的AJAX会如下处理:

    $.ajax({
        type: "GET",
        url: "userexists.php",
        data: dataString,
        dataType: "json",
        success: function(data) {
            if(data.myStatus== 'Y') {
                var msg = data.myMessage;
            }
        }
    });

(I realize this is a pretty broad answer, but AJAX calls from PHP using JSON results warrants more than a one paragraph answer for full understanding. There are a lot of good examples if you google jquery AJAX GET JSON results ) (我意识到这是一个相当广泛的答案,但是使用JSON结果从PHP进行AJAX调用需要一个段落的答案才能充分理解。如果您使用Google jQuery AJAX GET JSON结果,那么有很多很好的示例)

The AJAX Success:/Failure: is whether or not the AJAX call was successful, it has nothing to do with with the called page might return. AJAX成功:/失败:是AJAX调用是否成功,与被调用页面可能返回无关。 eg Failure will fire if the page you call doesn't exist, or if the code crashes. 例如,如果您调用的页面不存在,或者代码崩溃,则失败将触发。 Your script decides what to return, and the AJAX call must be successful to retrieve whatever that page is sending you. 您的脚本决定返回什么,并且AJAX调用必须成功检索该页面发送给您的内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM