0

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

4

3 回答 3

2

问题:

data: 'user=' + username,
$_GET['un']

您没有为“用户名”或其他任何内容使用相同的参数名称。在 JS 中您称其为“用户”,在 PHP 中您正在寻找“un”。

于 2013-07-15T11:05:57.577 回答
1

您正在发送?user=someName但正在寻找$_GET['un']. 将其更改为$_GET['user']

于 2013-07-15T11:06:50.293 回答
0

要调试我添加的代码行:

alert(data + " " + data.length);

success: function(data, textStatus, jqXHR) {

并发现我从我的 php 文件中得到了正确的消息。
然后我发现问题出在我的处理程序上

if(!data.length === 0){

!操作员只在哪里工作,data.length我是否需要它来进行整个比较。
我把它改成了

if(!(data.length === 0)){

现在它可以工作了。

于 2013-07-15T11:36:00.033 回答