2012-04-28 129 views
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。

+0

查询是不正确的位置:'$ SQL = “SELECT” $用户名 “FROM” .TABLENAME;' – hjpotter92 2012-04-28 05:15:36

+0

谢谢你,我更新它。 – 2012-04-28 05:18:36

+0

AJAX只是浏览器自己启动的HTTP请求。 – 2012-04-28 05:21:01

回答

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

(我意识到这是一个非常宽泛的答案,但AJAX使用JSON结果从PHP调用。权证不是一个段落的答案充分的了解更多,如果你谷歌有很多很好的例子jQuery的AJAX GET JSON结果)

阿贾克斯成功:/失败:是,是否AJAX调用是成功的,它有与被叫网页无关返回。例如如果您调用的页面不存在,或者代码崩溃,则会触发失败。您的脚本决定如何返回,并且AJAX调用必须成功取回不管它正将您。