如何知道php文件是否处理ajax请求

时间:2013-07-15 11:03:59

标签: php jquery ajax

我有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 [ '用户']
但同样的问题仍然存在。

3 个答案:

答案 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)){

现在可行。