0

我有一个表单,它有一个输入文本框和提交按钮。

提交表单时,文本框值应该传递给 php 脚本并检查值是否存在于 Mysql 数据库中。如果它存在,那么我们需要显示一个警告框,指出“输入的值已经存在,请尝试新的东西”。如果该值不存在,则可以将表单提交给表单操作中的 php 脚本。

我尝试使用jquery,代码如下:

 $(document).ready(function() {

        $("#form_add").submit(function () {
        var pval = $("#name").val(); 
        var datastring = 'pname'+pval;
        $.post("unique_valid.php", {pname:pval }, function (data){
                alert('duplicate');
            });
            return false;
        }); 
});


此代码的问题是它在每种情况下都显示警报框,但如果数据库中不存在值,则不允许提交表单。

php代码:

$pname = $_POST['pname'];
if( $pname == $row['name']){
        echo "success";
    }else{
        echo "failure";
    }

为这个问题提出更好的解决方案。

4

1 回答 1

2

那是因为无论 PHP 输出是什么,您都会警告“重复”。data尝试在警报之前检查 的值,如下所示:

$(document).ready(function() {

        $("#form_add").submit(function () {
        var pval = $("#name").val(); 
        var datastring = 'pname'+pval;
        $.post("unique_valid.php", {pname:pval }, 
                   function (data){
                        if(data == 'failure'){
                            alert('duplicate');
                        }else{
                            alert('not a duplicate'); 
                        }
                });
                return false;
        }); 
});

而且我假设您的 PHP 代码实际上会保存记录,如果它不是重复的(不过,您的代码并没有表明那么多)?

于 2009-07-22T15:04:35.677 回答