如何使用数据库项填充自动完成搜索

时间:2012-01-23 14:54:28

标签: jquery database autocomplete

我想用数据库项填充Jquery自动完成搜索...而不是使用"名称"如果分配了一个名称列表,我可以从我的数据库源搜索吗?

$(function() {
    var names = [ "sandy", "ruga", "malicka" ];

    var normalize = function( term ) {
        var ret = "";
        for ( var i = 0; i < term.length; i++ ) {
            ret += accentMap[ term.charAt(i) ] || term.charAt(i);
        }
        return ret;
    };

    $( "#developer" ).autocomplete({
        source: function( request, response ) {
            var matcher = new RegExp( $.ui.autocomplete.escapeRegex( request.term ), "i" );
            response( $.grep( names, function( value ) {
                value = value.label || value.value || value;
                return matcher.test( value ) || matcher.test( normalize( value ) );
            }) );
        }
    });
});

3 个答案:

答案 0 :(得分:0)

一般的想法是:

if(User starts typing in search box) {

    Fire keydown event in JavaScript {

        Send ajax request to your database,
            return a JSON object with relevant data

        Populate a list with those hits

        Assign said list to autocomplete
    }
}

答案 1 :(得分:0)

你必须使用AJAX。

AJAX用于将请求发送到远程服务器,然后从服务器接收数据。

在服务器端,您可以创建一个服务,该服务将接收特定请求并作为响应发送结果。之后,您可以将结果保存在列表中并执行您现在正在执行的操作。

答案 2 :(得分:0)

从jQuery UI自动完成检查此示例:http://jqueryui.com/demos/autocomplete/#multiple-remote

基本理念如下:

...
source: function( request, response ) {
    $.getJSON( "yourserver/data.php", {...params...}, response );
},
...