2012-09-13 38 views
0

我有一個代碼,其中有一個函數應該檢查用戶名是否可用。用戶名實時檢查使用Ajax PHP

我很困惑這個函數是如何工作的。

JS:

jQuery(document).ready(function(){ 
    // binds form submission and fields to the validation engine 
    jQuery("#register-form").validationEngine(); 
}); 

HTML輸入:

<form action="" id="register-form"> 
    <input value="" class="validate[required,custom[onlyLetterNumber],maxSize[20],ajax[ajaxNameCallPhp]]] input" type="text" name="username"/> 
</form> 

這是我的JS功能:

(function($){ 
    $.fn.validationEngineLanguage = function(){}; 
    $.validationEngineLanguage = { 
     newLang: function(){ 
      $.validationEngineLanguage.allRules = { 

       "ajaxNameCallPhp": { 
        // remote json service location 
        "url": "ajaxNameCallPhp.php", 
        // error 
        "alertText": "* This name is already taken", 
        // speaks by itself 
        "alertTextLoad": "* Validating, please wait" 
       } 
      }; 
     } 
    }; 

    $.validationEngineLanguage.newLang(); 
})(jQuery); 

這是我ajaxNameCallPhp.php功能:

include ("config.php"); 
$username = trim(strtolower($_POST['username'])); 
$username = mysql_escape_string($username); 

$query = "SELECT username FROM user WHERE username = '$username' LIMIT 1"; 
$result = mysql_query($query); 
$num = mysql_num_rows($result); 

echo $num; 
mysql_close(); 

所以任何人都可以給我一個解決方案?

我很感謝您的關注。

謝謝。

+0

它顯示什麼輸出? – KyelJmD

+0

如果我在文本框中輸入內容,它總是顯示*驗證,請稍候。 –

+0

你覺得它可能不存在嗎? – KyelJmD

回答

1

試試這個

function UserNameExist(){ 
    $("#msg").html("* Validating, please wait"); 
    $.ajax({ 
     url: "ajaxNameCallPhp.php", 
     type: "POST", 
     data: {username : $('#username').val()}, 
     dataType: "html" 
    }).done(function(msg) { 
     if(msg > 0){ 
     $("#msg").html("* This name is available"); 
     }else{ 
     $("#msg").html("* This name is already taken"); 
     } 
    }); 
    } 

其中#msg爲您展示按摩

的div id和#userName是文本框的ID

希望幫助。