这是我的j查询代码:控制台显示“更改”,如果操作通过j查询,我会添加该更改。我还通过手动传递参数来运行valdiateUname.php,它返回正确的结果但我的j查询不检查用户名。问题是什么?任何人都可以帮助我吗?
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function ($) {
uname.change(function(){
console.log('change');
$.ajax({
type: "POST",
data:{ // data that will be sent
uname: uname.val()
},
url:"validateUname.php",
//dataType:"text", // what type of data we'll get back
beforeSend: function(){
if(!$ ('span.unameCheck').html()){
$(this).after(' <span class="unameCheck" style="color:blue;"><b>Checking for the availability of username.....</span>');
}
},
success:function(data){
if(data != 0 ) {
if(!$ ('span.unameError2').html()){
$(this).after(' <span class="unameError2" style="color:red;"><b>Username already exist.</span>');
}
return false;
//valid = true;
}
else {
$(this).toggleClass('unameError2', false);
$('span.unameError2').fadeOut().remove();
return true;
}
}
});
});
});
</script>
这是我的validateUname.php代码:
<?php
require_once("config.php");
$username= isset($_POST["uname"]) ? $_POST["uname"] : $_GET["uname"];
$sql= "SELECT temp_user_login FROM temp_user_register WHERE temp_user_login = '$username' ";
echo $sql;
$result = mysql_query($sql);
echo $result;
$msg = mysql_num_rows($result);
echo $msg;
?>
答案 0 :(得分:2)
if(!$ ('span.unameError2').html())
永远不会触发,因为它不会返回false,它会返回''
并且您的条件语句不会检查它。
证明在jsFiddle
答案 1 :(得分:1)
使用前检查uname
是declared
。
如果$(this)
代表uname
,请将$(this)
替换为uname
。
您echo
只应once
PHP
,否则jquery function
将永远只会转到if
部分,
$result = mysql_query($sql);
$msg=0;
if($result){
$msg = mysql_num_rows($result);
}
echo $msg;
如果您不确定request
是POST
还是GET
,请使用$_REQUEST
代替$_POST
或$_GET
,
$username = isset($_REQUEST["uname"]) ? $_REQUEST["uname"] : '';
答案 2 :(得分:0)
所以这对我有用。我写的是这可能会帮助一个有同样问题的人。已经有太多正确的答案,但有时我们需要知道我们不应该做什么。
uname.blur(function(){
$.ajax({
type: "POST",
data:{ // data that will be sent
uname: uname.val()
},
url:"validateUname.php",
beforeSend: function(){
$ ('span.unameError2').css("color","blue").html(" Checking for username availability....");
$ ('span.unameError2').fadeIn('fast');
},
success:function(data){
if(data != 0 ) {
$ ('span.unameError2').css("color","red").html("Username already exist.");
$ ('span.unameError2').fadeIn('fast');
}
else {
$ ('span.unameError2').css("color","blue").html("Username available");
$ ('span.unameError2').fadeOut(3000);
}
}
});
});