0


0

PHPスクリプトを介したMysqlデータベースでのJqueryフォームの検証と値の確認

入力テキストボックスと送信ボタンを持つフォームがあります。

フォームを送信すると、テキストボックスの値は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";
    }

この問題に対するより良い解決策を提案してください。

1 Answer


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コードが実際にレコードを保存すると私は思っています(あなたのコードはそれほど多くは示していませんが)。