Php jQuery验证远程方法使用情况,以检查用户名是否已存在
我想使用jQuery.validate验证数据库中是否存在用户名。因此,我到目前为止得到的信息如下: jQuery:Php jQuery验证远程方法使用情况,以检查用户名是否已存在,php,jquery,mysql,jquery-validate,Php,Jquery,Mysql,Jquery Validate,我想使用jQuery.validate验证数据库中是否存在用户名。因此,我到目前为止得到的信息如下: jQuery: $("#signupForm").validate({ rules: { username: { required: true, minlength: 3, remote: "check-username.php"
$("#signupForm").validate({
rules: {
username: {
required: true,
minlength: 3,
remote: "check-username.php"
}
},
messages: {
username:{
remote: "This username is already taken! Try another."
}
}
});
check-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);
?>
这段代码总是显示一个错误,即用户名被占用,即使它不是
我正在使用jquerymobile1.9.1
提前谢谢。我有两个参考资料要看 验证插件的官方示例: jQuery论坛解决方案: 可能的解决方案是,据我所知,响应不需要json编码。因为json需要键值对,所以只提供值是行不通的。因此,试着将其作为“真”或“假”字符串进行回显 其次,validate使用GET作为表单提交方法,而不是POST 注意:刚刚找到问题的可能解决方案
我通过改变我使用的PHP技术成功地实现了这一点,以下是我的PHP:
<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');
$request = $_REQUEST['username'];
$query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'");
$result = mysql_num_rows($query);
if ($result == 0){
$valid = 'true';}
else{
$valid = 'false';
}
echo $valid;
?>
谢谢大家的帮助:你能再解释一下这个问题吗?哪个部分似乎有效,哪些部分无效?在“注册”页面上,它不会检查用户是否被录取。打开“网络”选项卡。提交时是否向check-username.php页面发送请求?如果是,响应代码是什么?200404500等,响应内容是什么?好的,很抱歉,没有发送到check-username.php的请求。文件位于错误的位置。我修复了它,但是现在它总是显示用户名被占用,即使它不是!嗯,实际上有点。不幸的是,我在jQuery手机上没有知识。如果还有其他人,他们可以随时纠正我们5年过去了,仍然对我很有帮助