检测Ajax请求搜索页面在显示HTML之前返回0结果

时间:2011-10-03 18:23:22

标签: php javascript jquery ajax

我正在尝试从页面获取json代码。我使用此

private function __ajax_admin_search($username = '')
{
   $result = $this->admin_login->Admin_Username_Ajax($username);
   $count = count($result);
   for ($i = 0;$i < $count;$i++)
      $arr[$i] = $result[$i]->username;
   echo (json_encode($arr));
}

尝试通过jQuery和JavaScript显示它

$("#AdminSearch").bind("change keyup", function() { 
           var url = "http://localhost/PmMusic/index.php/admin/ajax/admin_search/"+$("#AdminSearch").val();
            $.getJSON(url,function(data){
                if (data.length == 0) // or arr == null
                {
                    $("#AutoSearch").hide(1000);
                }
                else
                {
                    $("#AutoSearch").show(1000);    
                }
            });

        });

现在我的问题是,我无法检测到__ajax_admin_search何时找不到任何结果,如果(在JavaScript中)不是TRUE(总是它为FALSE)。 当我的php代码在数据库中找不到任何结果时,如何在JavaScript中检测到。

2 个答案:

答案 0 :(得分:4)

确保在$arr = Array();循环之前初始化for

然后,PHP脚本将返回[]作为JSON对象,您可以在JavaScript中检测到它而没有问题。

答案 1 :(得分:-1)

请注意,您必须设置正确的mime类型。你的javascript期待json所以你需要在php中设置标题。 JSON文本的MIME媒体类型是application / json ...

header("Content-type: application/json");