2012-04-28 131 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調用必須成功取回不管它正將您。