我正在使用bvalidator(jquery验证插件)来检查数据库中是否存在用户名。他们的文档有一个例子。但是,我不知道它是如何工作的。您可以在此处阅读有关该示例的更多信息 http://karmela.fsb.hr/~bmauser/bvalidator/documentation.html#serversidevalidation
我尝试创建自己的。但是,它始终告诉我,无论如何都已经使用了用户名......在AJAX方面,我是一个完全新手。我几乎不知道。所以无论如何,这是我到目前为止创造的......
index.php(主页)
<script type="text/javascript">
$(document).ready(function () {
$('#register').bValidator(optionsRed);
});
function checkUsername(username) {
$.post("checkusername.php", { username: username }, function(data) {
if (data == 0) {
ret = true;
} else {
ret = false;
}
return ret;
});
}
</script>
<input type="text" name="username_register" id="textstyleid" data-bvalidator="checkUsername,required,rangelength[5:20]" data-bvalidator-msg="This username is not valid or already taken."/>
checkusername.php(检查用户名是否存在)
<?php
require '../connect.inc.php';
if (isset($_POST['username'])) {
$username = mysql_real_escape_string($_POST['username']);
if (!empty($username)) {
$username_query = mysql_query("SELECT COUNT(uid) FROM users WHERE username='$username'");
$username_result = mysql_result($username_query, 0);
if ($username_result == 0) {
return 0;
} else if ($username_result == 1) {
return 1;
}
}
}
?>
修改 我注意到了404错误。我修好了。 PHP和AJAX正在运行。根据预览中输入的文本,它给出0或1。但是,问题仍然存在。我认为这是因为这行代码。我真的不明白这意味着什么。什么是数据?:
if (data == 0) {
ret = true;
} else {
ret = false;
}
return ret;
答案 0 :(得分:0)
进一步查看问题是你的php,你需要在结果周围使用mysql_num_rows与0 recs返回比较,结果对象本身只会给你一个资源id如果echo'ed out
答案 1 :(得分:0)
试试这个
if (data == 0) {
echo json_encode(TRUE);
} else {
echo json_encode(FALSE);
}