[英]How to check the text box value that exist in the database after submit the form
我有此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>
我有這個``JavaScript函數用於匯總表單值:
function submit(){
var cNumber = document.getElementById("CINumber").value;
//many form value within this function but I showed this value only cause this value need to check when click submit button.
$.ajax({
url: 'PHPMethodCalls_AL.php',
type: 'post',
data: {'action':'AddNewCI', 'cNumber' : cNumber },
success: function(data,status) {
//alert(data);
if(status == "success"){
alert("CI Name can be assigned");
alert("Successfully Register New CI Record.");
} else {
alert("CI Name is already present!");
return ;
}
},
error: function(xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
}
});
}
然后在“ 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個警告框,即使數據庫中已經存在數據。 但是,重復值未保存在數據庫中,因為我為此字段設置了UNIQUE。 請建議我,如果數據已存在,我應該如何獲取正確的警報框,如果不存在,則顯示“ Alredy exist”(如果存在,則顯示“ Alredy存在”)...
更改以下代碼...
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_encode,您可以根據需要直接回顯任何值。
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";
}
}
}
在ajax請求中更改您的成功功能:
success:fucntion(data){
if(data=="success"){
alert("Your success message here.");
}else{
alert("Alert message whatever you want.");
}
},
少嘗試這段代碼,效果很好
如果您使用jquery驗證,這里不需要顯示錯誤消息,您可以簡單地使用“ render”並呈現顯示的錯誤消息,如jquery中所要求的// //瀏覽器准備好... $(function(){//設置表單驗證在#register-form元素$(“#addfrm”)。validate({
// 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();
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.