我有ajax
请求的代码段:
<script type="text/javascript">
$(document).ready(function() {
$('#temp').click(function() {
var username = $('#un').val();
$.ajax({
url: "inter.php",
data: 'user=' + username,
cache: false,
type: 'GET',
success: function(data, textStatus, jqXHR) {
if (! data.length === 0) {
$('#msg').append('available');
$('#sub').removeAttr('disabled');
} else {
$('#msg').append("Username not available");
$('#sub').attr('disabled', 'true');
}
}
});
});
});
</script>
以及 inter.php
中的代码<?php
$arr = array('one', 'two', 'three');
if (in_array($_GET['user'], $arr)) {
echo "Username available";
} else {
//echo "0";
}
?>
但是,每次我收到消息Username not available
有人可以帮忙吗?我是ajax
的新手。
修改
$ _GET [ '用户']
但同样的问题仍然存在。
答案 0 :(得分:2)
问题:
data: 'user=' + username,
$_GET['un']
您没有为“用户名”或其他任何内容使用相同的参数名称。在JS中你称之为“用户”,在PHP中你正在寻找“un”。
答案 1 :(得分:1)
您正在发送?user=someName
,但正在寻找$_GET['un']
。将其更改为$_GET['user']
答案 2 :(得分:0)
要调试代码,我添加了一行:
alert(data + " " + data.length);
后
success: function(data, textStatus, jqXHR) {
发现我从我的php文件中收到了正确的消息 然后我发现问题在于我的处理程序
if(!data.length === 0){
其中!
运算符仅在data.length
处理,是否需要它才能进行整体比较。
我把它改成了
if(!(data.length === 0)){
现在可行。