6

jQuery.validate を使用してユーザー名がデータベースに存在するかどうかを検証したいので、これまでのところ次のとおりです。

jQuery:

    $("#signupForm").validate({
        rules: {
            username: {
                required: true,
                minlength: 3,
                remote: "check-username.php"
                }
            },
        messages: {
            username:{
                remote: "This username is already taken! Try another."
            }
        }
  });

チェック-username.php:

<?php

require_once "./source/includes/data.php";
header('Content-type: application/json');

$name = mysql_real_escape_string($_POST['username']);

$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'");

if (mysql_num_rows($check_for_username) > 0) {
    $output = true;
} else {
    $output = false;
}
echo json_encode($output);
?>

このコードは、ユーザー名が取得されていない場合でも、常にユーザー名が取得されているというエラーを表示します。

jQuery Mobile 1.9.1 を使用しています

前もって感謝します。

4

2 に答える 2

2

参照するリソースが 2 つあります。

検証プラグインの公式の例: http://jquery.bassistance.de/validate/demo/milk/

jQuery フォーラム ソリューション: http://forum.jquery.com/topic/jquery-validation-plugin-remote-validation-problem-locks-up

考えられる解決策は、私が知る限り、応答を json でエンコードする必要がないことです。json にはキーと値のペアが必要なため、値だけを指定しても機能しません。したがって、「true」または「false」の文字列としてエコーアウトしてみてください。

次に、validate はフォーム送信メソッドに POST ではなく GET を使用します。

注: JUST FOUND POSSIBLE SOLUTION QUESTION jQuery Remote validation

于 2013-05-16T00:32:25.917 に答える