如何(有效地)使用jQuery将输入的值与数据库相匹配?

时间:2010-10-23 05:04:23

标签: javascript jquery post .post

我一直在研究我的PHP项目,我正在尝试添加一个功能,告诉用户他们在注册表单中输入的用户名是否已经在更新输入时被占用。在开始时,我认为我知道如何对此进行编码 - 但我在此过程中遇到了一些问题。

当我将数据发布到我的PHP脚本时,我得到'全部清除'。我已经仔细检查了它,以及FireBugged后存在的所有变量,并且服务器完全按预期返回。我已经在我的数据库中插入了一个测试字段,所以我可以看看它是否有效。数据库中的名称是“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更改为图像的HTML。但代码所做的是切换到复选标记图像(第一个),无论返回(见下文)。

alt text

我认为这是我用来更新div .html()的方法的问题。但后来我发现,即使提交的第一个组合是数据库(返回'take'),输出仍然是复选标记图像。

我需要更新图像,显然是正确的。我很确定这不是PHP问题,因为我设置的脚本会返回预期的数据。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您正在使用赋值运算符,而不是检查条件中的相等性:

if(data = 'not_taken') {

应该是

if(data == 'not_taken') {

答案 1 :(得分: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";

将以这种方式完成。在响应div中显示finel返回的消息。

这是一种方法。请根据您的CMS,架构,框架更改代码。

我希望它会对你有所帮助。干杯:)

enter code here