我使用以下代码来了解我的数据库中是否已存在某些用户名。我正在使用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”已存在于我的数据库中。所以这很好,但我不希望输出是在我的输入下写的。
答案 0 :(得分:2)
http://docs.jquery.com/Plugins/Validation/Methods/remote
文档中有一个明确缺乏的例子,说明响应必须是什么,但它暗示了JSON:
响应被评估为JSON,对于有效元素必须为true, 并且可以是任何false,undefined或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;