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

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

フォームに入力したときにのみデータを検証できるクライアント側のスクリプト言語のみであるため、データベースにアクセスするために JavaScript を直接使用することはできません。asp.net、php などのサーバー側のスクリプト言語で実行できます。AJAX を使用すると、目標を達成するのに役立ちます。どこが間違っているのか尋ねることができない場合は、試してみてください

于 2013-07-17T10:21:09.750 に答える