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 に答える