Javascript 提交表单后如何检查数据库中存在的文本框值

Javascript 提交表单后如何检查数据库中存在的文本框值,javascript,php,ajax,database,Javascript,Php,Ajax,Database,我有一个表单中的HTML代码,我想检查用户输入的这个值是否已经存在于数据库中 <tr height="50"> <td valign="top"><label for="CINumber"><span style="color:red">*</span>CI Name:</label></td> <td><input type="text" id="CINumber" name

我有一个表单中的HTML代码,我想检查用户输入的这个值是否已经存在于数据库中

<tr height="50">
    <td valign="top"><label for="CINumber"><span style="color:red">*</span>CI Name:</label></td>
     <td><input type="text" id="CINumber" name="CINumber"></td>                     
</tr>
我在“PHPMethodCalls_AL.php”url中调用PHPMethod调用

if($_POST['action'] == "AddNewCI"){
    $cNumber = $_POST['cNumber'];
    $newCI = AddNewCI($cNumber);
    echo json_encode($newCI );
}
之后,我调用与数据库连接的
PHP
函数

function AddNewCI($cNumber){
    global $DB;
    if(!empty($cNumber)){   
        $namequery="SELECT Name from Item where Name='$cNumber'";
        $namecheck=mysql_query($namequery);
        $row=mysql_num_rows($namecheck);

        if($row==0){                     
            echo "success";
            $strSql1 ="INSERT INTO Item (Name)VALUES('$cNumber')";
            $res1 = $DB->Query($strSql1, false, $err_mess.__LINE__);                    
        }
        else {  
            echo "!success";
        }
    }                                                       
}

点击提交后,我只得到了(状态==“成功”),然后弹出2个警报框,即使数据已经存在于数据库中。但是,重复值不会保存在数据库中,因为我为该字段设置了唯一值。如果数据存在,请建议我如何获得正确的警报框;如果数据不存在,请显示“Alredy exist”;如果数据不存在,请显示“success alert box”…

在ajax请求中使用以下命令更改成功函数:

success:fucntion(data){
  if(data=="success"){
    alert("Your success message here.");
  }else{
    alert("Alert message whatever you want.");
  }
},

更改以下代码

                            url: 'PHPMethodCalls_AL.php',
                            type: 'post',
                            data: {'action':'AddNewCI', 'cNumber' : cNumber },

                            success: function(data) {

                            if(data == "success"){                            
                                alert("CI Name can be assigned");
                                alert("Successfully Register New CI Record.");                              
                            }
无需使用json_编码,如果需要,可以直接回显任何值

if($_POST['action'] == "AddNewCI"){
$cNumber = $_POST['cNumber'];
$newCI = AddNewCI($cNumber);
echo $newCI;
}
更改您的函数返回值

function AddNewCI($cNumber){
    global $DB;

        if(!empty($cNumber)){   

            $namequery="SELECT Name from Item where Name='$cNumber'";
            $namecheck=mysql_query($namequery);
            $row=mysql_num_rows($namecheck);
        if($row==0){                     
                $strSql1 ="INSERT INTO Item (Name)VALUES('$cNumber')";
                $res1 = $DB->Query($strSql1, false, $err_mess.__LINE__); 
                return "success";                   
            }
        else
            {   
                 return "error";
            }

        }                                                       
   }
试试这少一个代码,效果很好
这里不需要显示错误消息,如果您使用jquery验证,您可以简单地使用“render”和render函数显示错误消息,如jquery中所需 //当浏览器准备就绪时。。。 $(函数(){ //在#注册表表单元素上设置表单验证 $(“#addfrm”).validate({

//指定验证规则
规则:{
CINumber:{
要求:正确,
远程:{
url:“PHPMethodCalls_AL.php”,
类型:“post”,
数据:{
CINumber:function(){
返回$(“#CINumber”).val();
}
}
}
}
},
//指定验证错误消息
信息:{
CINumber:{
必填:“请输入您的密码”,
远程:“输入的CINumber已存在请输入另一个”
}
},
submitHandler:函数(表单){
表单提交();
}
});
});
PHPMethodCalls_AL.php
当cinumber未在数据库上退出时,此文件返回true;当它返回false时,表示cinumber已在数据库上退出

change
echo“success”
返回“success”
回显“!成功”
返回“!success”@B.Desai。。嗯。。即使更改为return,它也不起作用:(不要使用mysql_query,不推荐使用mysqli_query或PDO。更改ajax成功条件'if(data==“success”){},因为您没有在数据中分配/给定状态变量。@GaurangSondagar当我更改时,'if(data==“success”),即使数据库中不存在数据,它也只显示else条件,但数据已保存到数据库中,但显示错误的警报框。当我更改时,'if(data==“success”),它只显示else条件,即使数据库中不存在数据,但数据保存到数据库中,但显示错误的警报框。非常感谢!!它工作了…当我更改echo($newCI)而不是使用json_encode时。乐于帮助:)不要使用mysql查询,更喜欢使用mysqli查询或PDO。mysql查询现在在php中已被弃用。感谢您的建议。:)这对我很有帮助。
function AddNewCI($cNumber){
    global $DB;

        if(!empty($cNumber)){   

            $namequery="SELECT Name from Item where Name='$cNumber'";
            $namecheck=mysql_query($namequery);
            $row=mysql_num_rows($namecheck);
        if($row==0){                     
                $strSql1 ="INSERT INTO Item (Name)VALUES('$cNumber')";
                $res1 = $DB->Query($strSql1, false, $err_mess.__LINE__); 
                return "success";                   
            }
        else
            {   
                 return "error";
            }

        }                                                       
   }
   // Specify the validation rules
    rules: {
      CINumber: {
            required: true,
            remote: {
            url: "PHPMethodCalls_AL.php",
            type: "post",
            data: {
              CINumber: function() {
                return $( "#CINumber" ).val();
              }
            }
          }
        }
    },

    // Specify the validation error messages
    messages: {
        CINumber: {
            required: "Please enter your CINumber",
            remote:"Entered CINumber already exists please enter another one"
       }
    },

    submitHandler: function(form) {
        form.submit();
    }
});
});
</script>

 PHPMethodCalls_AL.php
   this file return true when cinumber not exits on database and when it`s return false that means cinumber already exits on database      


<?php
   //add database configuration 
   $CINumber=$_POST['CINumber'];
   $query="SELECT * FROM `table_name` where `CINumber`=$CINumber";
   $result=mysql_query($query);
   $number_of_rows = mysql_num_rows($result);
   if($number_of_rows){
      echo "false";
   }else{
     echo "true";
   }
   die();
   ?>