迭代数据以显示自动完成结果

时间:2012-04-06 08:40:35

标签: jquery ajax jquery-ui autocomplete

我试图显示自动填充结果。

以下是我使用GET请求查询时脚本返回的数据

例如,当我查询它“fb”

它返回以下数据

 "fb"
 "fbi"
 "fbi most wanted"
 "fbi jobs"
 "fb banners"
 "fbook"
 "fb covers"
 "fbanners"
 "fbisd"
 "fbop"

以下是自动完成插件的代码

        $("#query").autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "q.php",
                dataType: "json",
                data: {
                    "q" : request.term
                },
                success: function( data ) {
                response(data[1])
                }
            });
        },
        minLength: 2
    });

它没有告诉我任何结果。谁能告诉我我在哪里错了!

2 个答案:

答案 0 :(得分:0)

$("#query").autocomplete({
        source: "q.php",
        minLength: 2
    }).data("autocomplete")._renderItem = function (ul, item) {
            return $("<li></li>")
            .append("<a>" + item+ "</a>")
            .appendTo(ul);
        };

答案 1 :(得分:0)

如果你使用jQuery Autocomplete插件,为什么你会过度复杂并自己渲染它?

只需定义源脚本并提供格式良好的JSON响应,因为自动完成模块需要它:

  

预期数据格式

     

来自本地数据,网址或回调的数据可以有两种变体:

     

字符串数组:   [“Choice1”,“Choice2”]

     

具有标签和值属性的对象数组:   [{label:“Choice1”,值:“value1”},...]

source: "query.php";

让插件完成剩下的工作。

阅读API:jQuery Autocomplete plugin overview

如果您想做其他事情,只需注册并抓住活动。