【问题标题】:Jquery Form Validation and Checking the values with Mysql Database through PHP ScriptJquery Form Validation and Check the values with Mysql Database through PHP Script
【发布时间】:2009-07-22 14:45:05
【问题描述】:

我有一个包含输入文本框和提交按钮的表单。

在提交表单时,文本框的值应该被传递给 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";
    }

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

【问题讨论】:

    标签: php jquery mysql ajax form-submit


    【解决方案1】:

    那是因为无论 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 代码实际上会保存记录,如果它不是重复的(但您的代码并没有表明那么多)?

    【讨论】:

    • 谢谢,我收到警报消息,但在警报时表单未提交('不是重复的')。提交表单后,我使用 php 脚本将记录保存在数据库中。
    猜你喜欢
    • 1970-01-01
    • 2022-12-02
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-26
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多