簡體   English   中英

提交表單后如何檢查數據庫中存在的文本框值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM