【发布时间】:2013-08-22 07:28:26
【问题描述】:
我正在尝试检查插入用户名是否正确或不使用 jquery 和 php.. 如果用户名与数据库中的值不匹配,它应该触发警报说“你的用户名错误”。
我试过这个,但我想不通。当我键入每个字母触发的用户名警报消息时。但是我需要在输入文本字段后用数据库检查给定的值。
这是我的 Jquery -
// --- Check Username Availability for successful login --- //
$('#loginusername').keyup(function() {
var checkname=$(this).val();
var availname=remove_whitespaces(checkname);
if(availname!=''){
var String = 'username='+ availname;
$.ajax({
type: "POST",
url: "emailCheck.php",
data: String,
cache: false,
success: function(result){
var result=remove_whitespaces(result);
if(result == $('#loginusername').val()){
alert('Your entered Username is ok');
} else {
alert('Your entered Username is wrong');
}
}
});
}
});
这是来自 emailCheck.php
if(isset($_POST['username']) && !empty($_POST['username'])){
$userName = mysqli_real_escape_string($dbc, $_POST['username']);
$q = "SELECT username FROM userlogin
WHERE username = '$userName'";
$r = mysqli_query($dbc, $q);
$count = mysqli_num_rows($r);
$HTML='';
if($count == 1){
$HTML='username exists';
}else{
$HTML='';
}
echo $HTML;
}
【问题讨论】:
-
您的代码在哪里停止工作? .keyup 被调用了吗?
-
您可以将检查绑定到
change事件,而不是将检查绑定到change事件,该事件会在您离开该输入字段后触发。 -
@cars10 我尝试使用
change。那么它总是会去其他 ajax 成功函数的一部分。 -
当您使用 POST 发送数据时,您必须将其包含在像
data: {username:availname}这样的对象格式中,发送字符串'username='+ availname将不起作用。