Javascript 提交表单后如何检查数据库中存在的文本框值
我有一个表单中的HTML代码,我想检查用户输入的这个值是否已经存在于数据库中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
<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已在数据库上退出
changeecho“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();
?>