0

我设置了一个非常简单的表单,我正在使用 Jquery validate 来检查我的字段,这似乎是工作文件。然后我想用一个 php 文件设置遥控器来检查用户名的可用性。当我回显 check_num_rows 时,我得到了与输入匹配的行数。

$check_num_rows = mysql_num_rows($check);

我显然不想要匹配的数量,所以我添加了一个 if 语句,使它看起来像这样......

$username = mysql_real_escape_string($_GET['username']);

$check = mysql_query("SELECT username FROM users WHERE username='$username'");
$check_num_rows = mysql_num_rows($check);

if ($check_num_rows == 1)
{
    echo "Username taken!";
}

常规验证仍然有效,但我没有像以前那样得到回声,这让我相信只有最后几行代码是一个错误,但我没有看到它。下面是 Jquery 验证部分。

$("#register").validate({         
rules: {
    username: {
        minlength: 5,
        remote: "check-username.php"     
},
    password: {
        minlength: 6
    }
}
});

我已经看到了与此类似的问题的其他答案,但没有任何适合这里的答案。谢谢!

4

1 回答 1

0

根据该remote方法的文档,

服务器端资源通过 jQuery.ajax (XMLHttpRequest) 调用并获取一个键/值对,对应于已验证元素的名称及其作为 GET 参数的值。响应被评估为 JSON 并且对于有效元素必须为 true,并且对于无效元素可以是任何 false、未定义或 null,使用默认消息;或字符串,例如。“该名称已被占用,请尝试 peter123”以显示为错误消息。

注意上面的粗体部分。我看不到您的 PHP 如何/在何处返回true响应。

于 2013-06-30T13:38:44.360 回答