Как заполнить поиск автозаполнения с элементами базы данных - PullRequest
0 голосов
/ 23 января 2012

Я хотел бы заполнить поиск автозаполнения 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 голосов
/ 23 января 2012

Вы должны использовать AJAX.

AJAX используется для отправки запросов на удаленный сервер, а затем получения данных с сервера.

На стороне сервера вы можете создать службу, которая будет принимать конкретные запросы и в ответ отправлять результат. После этого вы можете сохранить результат в списке и делать то, что вы делаете сейчас.

0 голосов
/ 23 января 2012

Проверьте этот пример в автозаполнении пользовательского интерфейса jQuery: http://jqueryui.com/demos/autocomplete/#multiple-remote

Основная идея выглядит следующим образом:

...
source: function( request, response ) {
    $.getJSON( "yourserver/data.php", {...params...}, response );
},
...
0 голосов
/ 23 января 2012

Общая идея:

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...