我有此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存在”;如果不显示“显示成功警报框” ...

最佳答案

更改以下代码...

                            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";
            }

        }
   }

10-06 14:11
查看更多