2010-10-23 104 views
0

我一直在研究我的一個PHP項目,我試圖添加一個功能,告訴用戶他們輸入的用戶名是否已經在註冊表中輸入時更新輸入。當開始時,我認爲我知道如何編碼 - 但我一路上遇到了一些問題。如何(有效)使用jQuery將輸入值與數據庫匹配?

當我將數據發佈到我的PHP腳本時,我得到'all clear'。我已經加倍檢查了它,以及FireBugged後所有變量都存在,並且服務器完全按照預期返回。我在我的數據庫中插入了一個測試字段,這樣我就可以看到它是否有效。 DB中的名字是'Cameron'。

現在,我的代碼。

function checkUsername() { 
    $.post(rootpath + "/inc/php/handlers/checkusername.php", { 
     submit: "submitted", 
     username: $('#username').val() 
    }, function (data) { 
     if (data = 'not_taken') { 

      $('#cui').html('<img src="' + rootpath + '/inc/images/icons/Checkmark-32.png" />'); 
     } 
     else { 
      $('#cui').html('<img src="' + rootpath + '/inc/images/icons/block-icon-32.png" width="32" height="32" />'); 
     } 
    }, "html"); 
} 

然後

<input type='text' name='username' id='username' onkeyup='checkUsername();' /> 

在這種情況下,我希望到一個div的HTML更改爲圖像。但代碼所做的是切換到複選標記圖像(第一個),而不管返回(見下文)。

alt text

我認爲這是與我用於更新的股利,.html()方法的問題。但是我發現,即使提交的第一個組合是數據庫的組合(返回'已採用'),輸出仍然是複選標記圖像。

我需要圖片更新,顯然是正確的。我很確定這不是PHP問題,因爲我設置的腳本返回了預期的數據。

在此先感謝您的幫助!

回答

2

您使用賦值運算符,而不是檢查平等您的條件:

if(data = 'not_taken') { 

應該

if(data == 'not_taken') { 
+0

試過了。 – Cameron 2010-11-17 01:59:17

0
function doAjaxPost(username) 
     { 

     var username= $('#username').val(); 


     $.ajax({ 
      type: "POST", 
      url: "/inc/php/handlers/checkusername.php", 
      data: "username="+username+, 
      success: function(resp){ 
      //alert($Msg); 
    }, 
     error: function(e){ 
      //alert($Msg); 
    } 
}); 
} 

在checkusername.php

$SelectQuery=" select usename from userswhere usename='".$_POST['usename']."' "; 
        if($Row=$DB->Select($SelectQuery,'select_capacity',$Module)) 
        { 
         $select_record=1; 
        } 
        $sbval=mysql_num_rows($Row); 
        if($sbval>=1) 
        return "alreay exist"; 

這將在這個wa完成y。在響應div中顯示finel返回的消息。

這是一種方法。請根據您的CMS,架構,框架更改代碼。

我希望它能幫助你。歡呼:)

enter code here