根据输入自动完成AJAX请求,而不是返回所有结果

时间:2013-04-18 05:41:20

标签: javascript jquery autocomplete fcbkcomplete

我正在使用这个名为FCBKcomplete的自动完成插件,它的功能就像魅力一样。 我唯一的问题和担忧是,显然(我的想法)当我在输入中输入一个字符来获得结果的下拉列表时,所有结果将作为JSON响应返回,然后将搜索该响应在下拉列表中显示我的结果。

换言之,请说以下是我的网址:

http://this.com/usersAPI.do

搜索查询将类似于:

select * from user_table 

当请求被发送到此URL时,所有结果都将返回,并且大小根本不小。

我正在寻找的是我可以搜索输入字段中输入的字符的方式。所以这样的网址:

http://this.com/usersAPI.do?name=?

以便执行的查询类似于

select * from user_table where name like xxx

xxx是我到目前为止输入的字符。所以我输入的下一个字符是查询更改为

select * from user_table where name like xxxy 

等等

这样可以减轻JSON响应,降低服务器负载。

所以请帮助我,谢谢,

1 个答案:

答案 0 :(得分:0)

嗨,你可以使用这样的东西。

    $( "#fieldId").autocomplete({
         source: 
        function( request, response ) { 
             $.ajax({
                 url: "test.do",
                 data : {"searchText":request.term}
                 context: document.body
                 }).done(function() {
                     response( $.map( data.dropValues, function( item ) {
                                    var returnObj = new Object();
                                    returnObj['label'] = item.id + '--' + item.value;
                        }
                 }); 
        },
        minLength: 1, 
        mustMatch:true,
        autoSelect :true,
        delay:0,
        }).data( "autocomplete" )._renderItem = function( ul, item ) { 
        var html = '<li><a>' + item.label;
            html += '</a></li>';
        return $(html).data('item.autocomplete', item).appendTo( ul );
    };