0

我有一个 HTML 文本字段,我在其中向我的数据库添加唯一值。目前我正在使用 PHP 来验证在文本字段中输入的值是否已存在于我的数据库中。我想知道这是否可以通过 JavaScript 实现,以便在出现错误时阻止表单提交。

编辑:这就是我到目前为止的方式

JavaScript 通过 onsubmit="return validateForm()" 在 form-tag 中执行。我收到“系统错误!” 消息和表单已提交,即使我说不应该。

function validateForm(){

    // Get all elements with the required-class 
    var x = document.getElementsByClassName('required');

    var submitForm = true;

    for(var i = 0; i < x.length; i++){

        // Fetch input
        var input = x[i];

        // Fetch input value
        var inputValue = input.value;

        if(input.disabled == false){

            // Check if the value exist             
            if(inputValue == null || inputValue == ''){

                // Red border
                input.style.borderColor = "#ff0000";

                // Don't submit the form
                submitForm = false;

            } else if(input.name == 'company'){

                $.ajax({

                    type: 'GET',
                    url: '../includes/ajax_mysql.php?company='+input.value,
                    success: function(data){

                        if(data == '1'){ submitForm = false; } else{ submitForm = true; }

                        alert(data);

                    },
                    error: function(data){

                        submitForm = false;

                        alert("System Error!");

                    }

                });

            }

        }

    }

    if(!submitForm){ return false; } else{ return true; }

}
4

4 回答 4

3

您不能通过 Javascript 直接访问数据库。

无法通过 Javascript 直接访问数据库。解决方案是使用 AJAX 调用服务器端 PHP 页面,然后查询数据库。

于 2013-07-17T10:16:13.693 回答
0

您不能直接使用 JavaScript 访问数据库,因为它只是一种客户端脚本语言,只能在您输入表单时验证数据,它可以使用 asp.net、php 等服务器端脚本语言来完成。你最好使用 AJAX 它可以帮助你实现你的目标。如果你不能问你哪里错了,试试吧

于 2013-07-17T10:21:09.750 回答
0

您的 html 文本字段

<input type="text" name="txt_field" id="txt_field">
<input type="submit" name="insert_value" id="insert_value" value="Send" />

现在把js文件

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

现在你的脚本

$("#insert_value").live('click',function(){
    var keyword=$("#txt_field").val();
    $.ajax({
       url      : 'ajax.php',//page where you need to write the query
       type     : 'POST',    // wil get data as post
       data     : { 'keyword':keyword },//you need to get the data as $_POST['keyword'] in ajax page
       success  : function(resp){
            if(resp == "1")
            {
                alert("already exists"); 
            }
            else
            {
                //submit the form
            }
       },
       error    : function(resp){
            alert("System Error !!!");
       }
    });
});

在ajax页面中编写查询并返回

if(mysql_num_rows($result)>0)
{
    echo "1";
}
else
{
    echo "0";
}

试试这个,让我知道状态。

于 2013-07-17T10:41:27.903 回答
0

如果您向询问数据库的服务器端程序发出 HTTP 请求,客户端上运行的 JavaScript 只能知道数据库中的内容。

您可以使用XMLHttpRequest来执行此操作,但这可能不值得付出努力(因为如果没问题,您将不得不重新提交数据)。

于 2013-07-17T10:16:29.347 回答