1

学校のプロジェクト用の Web サイトを開発しています。私は主に PHP を使用していますが、クライアント側の検証も行うべきだと思います。Validate JQuery プラグインを見つけるには、Google で非常に短い検索が必要でした。これまでのところ、これは私が持っているものです:

<form id="regform" class="well" method="post" action="Registering.php">
        <label>Name: <input type="text" placeholder="Type your name" name="Name" class="required" /></label>
        <label>Surname: <input type="text" placeholder="Type your surname" name="Surname" class="required" /></label>
        <label>Username: <input type="text" placeholder="Type your username" name="Username" class="required" /></label>
        <label>Password: <input type="password" placeholder="Type your password" name="Password" class="required" /></label>
        <label>Repeat Password: <input type="password" placeholder="Confirm Password" name="Password-confirm" class="required" /></label>
        <label>E-Mail: <input type="Email" placeholder="Type your Email" name="Email" class="required email" /></label>
        <label>Birthday: <input type="Date" name="Birthday" /></label>
        <label>Gender:</label>
        <label>Male <input type="radio" name="Gender" value="0" checked> Female <input type="radio" name="Gender" value="1"></label>
        <label>Photo: <input type="url" placeholder="Paste an image link" name="PhotoLink" class="url" /></label>
        <label><input type="submit" class="btn btn-primary" name="Submit" value="Register in YouTune" /></label>
 </form>

これはフォームで、ほとんど標準的な登録フォームです。ここに追加するものはありません。そして、私はこの小さなJavascriptを持っています:

$(document).ready(function(){
        $("#regform").validate({
            rules: {
                Username: {
                    remote: { url: "/check_username.php", async: false }
                }
            },
            messages: {
                Username: { remote: "Username already on use. Pick a different one." }
            }
        });
});

最新の JQuery ライブラリと Validate Plugin のバージョン 1.10 の両方のスクリプトがドキュメントの先頭に追加されました。

簡単に言うと、リモート ルールが機能していないことを除けば、検証作業はスムーズに実行されます。まったく存在しないかのように、既に使用されているユーザー名で送信したかどうかにかかわらず、エラー メッセージは表示されません。Javascript が呼び出している php ファイルには、次のスクリプトがあります。

<?php error_reporting(E_ALL);
     require_once("../Clases/User.php");
     header('Content-type: application/json');
     $vUser = new User();
     $vResult = $vUser->GetUserByUsername($_REQUEST["Username"]);
     if ($vResult) {
    echo false;
     } else { echo true; }

?>

GetUserByUsername メソッドは、DataBase に移動し、指定されたパラメーターでユーザーを検索し、一致する場合は true を返し、一致しない場合は false を返します。Javascriptからのリモート呼び出しなしでテストしましたが、正常に動作します

それで、なぜこれが起こっているのか誰にも分かりますか?

時間を割いて読んでいただき、この小さな問題について私を助けてくれてありがとう.

編集:解決しました。リモート呼び出しのソースを修正する必要がありました。私がそれを逃したなんて信じられない。とにかく、助けてくれてありがとう。

4

1 に答える 1

0

よくわかりませんが、動作するかどうかを確認してください。URL から「/」を削除します。「/check_username.php」または絶対 URL の代わりに「check_username.php」を使用します。

于 2012-10-09T14:02:42.157 に答える