0

我使用以下代码来了解我的数据库中是否已经存在某些用户名。我正在使用 jquery 验证器,并以这种方式配置脚本:

$(document).ready(function(){

    // Validate
    // http://bassistance.de/jquery-plugins/jquery-plugin-validation/
    // http://docs.jquery.com/Plugins/Validation/
    // http://docs.jquery.com/Plugins/Validation/validate#toptions

        $('#profile').validate({
        rules: {
          name: {
            minlength: 2,
            required: true
          },
          username: {
            minlength: 2,
            required: true,
            remote: "../check-username.php"
          }
        },
            highlight: function(element) {
                $(element).closest('.control-group').removeClass('success').addClass('error');
            },
            success: function(element) {
                element
                .text('OK!').addClass('valid')
                .closest('.control-group').removeClass('error').addClass('success');
            }
      });

});

其中 check-username.php 定义为:

<?php 

require_once('connection.php');

$check = "true"; 
$request = trim(strtolower($_REQUEST['username'])); 

mysql_select_db($dbname, $temp);
  $query_username=sprintf("SELECT * FROM users WHERE username = '$request'");

  $resultUsers = mysql_query($query_username, $temp) or die(mysql_error());

   $usernameFound= mysql_num_rows($resultUsers);

   if ($usernameFound> 0) { 
    $check = "false"; 
} 


header("Content-type: application/json; charset=windows-1251");
$result = $_REQUEST['username'].'('.$check.')';
echo $result;

?>

一切正常,除了识别已经存在的用户名。也许有问题:

remote: "../check-username.php"

或在 php 文件本身中。

有人可以帮助我吗?

编辑1:

尝试@MHR 代码我得到这个:

在此处输入图像描述

在这种情况下,“user1”已经存在于我的数据库中。所以这很好,但我不希望输出写在我的输入下。

4

1 回答 1

2

http://docs.jquery.com/Plugins/Validation/Methods/remote

该文档有一个关于响应必须是什么的闪亮示例,但它暗示了 JSON:

响应被评估为 JSON 并且对于有效元素必须为 true,并且对于无效元素可以是任何 false、未定义或 null,使用默认消息;或字符串,例如。“该名称已被占用,请尝试 peter123”以显示为错误消息。有关更多示例,请查看 marketo 演示和牛奶演示。

我的猜测是,如果有效,则应返回“true”,否则应返回“false”;t:

$check = true; 
$request = trim(strtolower($_REQUEST['username'])); 
mysql_select_db($dbname, $temp);
  $query_username=sprintf("SELECT * FROM users WHERE username = '$request'");
  $resultUsers = mysql_query($query_username, $temp) or die(mysql_error());
   $usernameFound= mysql_num_rows($resultUsers);
   if ($usernameFound> 0) { 
    $check = false; 
} 
header("Content-type: application/json; charset=windows-1251");
if($check){
  $check = "true";
}else{
  $check = "User: ".$request." already exist, please choose another user name.";
}
$result = "\"".$check."\"";
echo $result;
于 2013-04-25T09:43:46.623 回答