keyup()验证与jquery-ui对话框无法正常工作

时间:2016-11-03 14:59:49

标签: javascript php jquery

我有jquery-ui对话框有一些输入字段用于更新用户信息 每当用户键入其中一个字段(使用keyup() )时,输入的值将被发送到数据库以检查数据库中是否存在该名称的天气。 不幸的是,它总是返回数据库中没有这样的名称(即使它确实存在)。

注意:"更新用户信息的形式"包含在index.php(主页)中。我尝试使用该表单作为主页面创建一个新项目,并且它正常工作。因此,我认为在主页中包含表单页面存在问题。是吗?!!

包含在主页中的表单

<div id="container">
          <form action="" class="fixed-dialog" id="customForm" dir="ltr">
                <table> 
                 <tr>
                  <td id="label-td"><label for="name">firstName</label></td>
                  <td id="input-td">
                  <input type="text" class="form-group" id="firstName" name="name" />
                  </td>
                  <td id="span-td">
                  <span id="firstNameInfo">first Name</span>
                  </td>
                 </tr>
                   </table>
            <div>
                <input type="button" name="send" id="send" value="Update">
            </div>
        </form>
</div>

Javascript文件:,包括jquery-ui对话框并验证输入字段:

var form       = $("#customForm");
var name       = $("#firstName");
var nameInfo   = $("#firstNameInfo");
var state      = false;


name.keyup(validateName);

function validateName(){
    if(name.val().length < 2){
        name.removeClass("valid");
        nameInfo.removeClass("valid");
        name.addClass("error");
        nameInfo.addClass("error");
        nameInfo.text("More than Two Letters!!");
        state = false;
    }else{
        if(name.val().length >= 2){
            var username = name.val();
            //here, getting validate.php page, which takes the value of the input and check it with DB
            $.post('includes/validate.php',{names:username}, function(data){
                if(data != 0){
                    //if there is a match with DB.
                    name.removeClass("valid");
                    nameInfo.removeClass("valid");
                    name.addClass("error");
                    nameInfo.addClass("error");
                    nameInfo.text("it's already there..");
                    state = false;
                }else{
                    //if there is no match with DB.
                    name.removeClass("error");
                    nameInfo.removeClass("error");
                    name.addClass("valid");
                    nameInfo.addClass("valid");
                    nameInfo.text("Accepted!!");
                    state = true;
                }
            });

        }
    }
    return state;
}  

最后一个文件是 validate.php ,它将检查数据库中的输入值:

include "includes/config.php";
include "./functions.php";
$name = &$_POST['names'];
if($name != ""){
    arabicQuerySetUp();
    $query_search_name = "SELECT * FROM users WHERE user_first_name = '{$name}' ";
    $query_search_name_result = mysqli_query($dbc, $query_search_name);
    $count_names = mysqli_num_rows($query_search_name_result);
    if($count_names != 0){
        echo 1;
    }else{
        echo 0;
    }
}  

正如我上面提到的,我试图在新项目中创建它,而不是将它包含在主页面中;它工作得很好。

我尝试了太多,无法找到错误在我的代码中的位置,但我无法做到。所以我来这里寻求任何帮助。

提前致谢。

0 个答案:

没有答案