0

这是让 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>

这是 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
    {

    }
?>

但是我一直想弄清楚ajax函数的实际工作原理,例如,在我知道输入的用户名已被使用后,我应该在空白字段中输入什么?我根本不懂ajax。

4

1 回答 1

0

您需要返回一个 JSON 编码的数组(查看http://php.net/manual/en/function.json-encode.php)。它基本上会返回如下内容:

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 '}';
    }

然后,您的 AJAX 会像这样处理它:

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

(我意识到这是一个非常广泛的答案,但是使用 JSON 结果从 PHP 调用 AJAX 需要不止一个段落的答案才能完全理解。如果你用 google jquery AJAX GET JSON results 有很多很好的例子)

AJAX Success:/Failure: 是AJAX调用是否成功,与被调用页面可能返回无关。例如,如果您调用的页面不存在或代码崩溃,则会触发失败。您的脚本决定返回什么,并且 AJAX 调用必须成功才能检索该页面发送给您的任何内容。

于 2012-04-28T05:25:03.953 回答