Php 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"

我想使用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."
            }
        }
  });
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);
?>

我有两个参考资料要看

验证插件的官方示例:

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年过去了,仍然对我很有帮助