0

我正在使用这个名为 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 是我目前输入的字符。我输入的下一个字符也是 y 查询更改为

select * from user_table where name like xxxy 

等等

这导致更轻的 JSON 响应和更少的服务器负载。

所以请帮帮我,谢谢

4

1 回答 1

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 );
    };
于 2013-04-18T06:04:07.267 回答