学校のプロジェクト用の 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からのリモート呼び出しなしでテストしましたが、正常に動作します
それで、なぜこれが起こっているのか誰にも分かりますか?
時間を割いて読んでいただき、この小さな問題について私を助けてくれてありがとう.
編集:解決しました。リモート呼び出しのソースを修正する必要がありました。私がそれを逃したなんて信じられない。とにかく、助けてくれてありがとう。