我设置了一个非常简单的表单,我正在使用Jquery验证来检查我的字段,这似乎是一个工作文件。然后我想用一个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
}
}
});
我已经看到了类似问题的其他答案,但没有适合这里的。谢谢
根据remote
方法的文档,
服务器端资源通过jQuery.ajax(XMLHttpRequest)和获取一个键/值对,对应于已验证的名称元素及其值作为GET参数。响应评估为对于有效元素,JSON和必须为true,并且可以为任何false,未定义或null表示无效元素,使用默认消息;或字符串,例如"该名称已被使用,请尝试peter123"显示为错误消息。
注意上面粗体部分。我不知道你的PHP是如何/在哪里返回true
响应的。