Как сделать поиск в поле по части введенных данных

Тема в разделе "JavaScript", создана пользователем danneo, 10 июл 2013.

Модераторы: ZiX
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.453
    Симпатии:
    113
    В поле нужно вводить номер (поиск по полю id) или название (поиск по полю title), и сразу осуществляется поиск в виде выпадающего меню, пользователь выбирает из списка внизу варианты, оно вводится в поле.
    Пример, как в поиске CMS DLE и т.д.
    Может быть есть уже готовые примеры?
    js не знаю, точнее, примерно понимаю как работает, но очень примерно, чтобы сделать снуля.
     
  2. LeXiKoN

    LeXiKoN Постоялец

    Регистр.:
    11 окт 2008
    Сообщения:
    54
    Симпатии:
    8
    ajax POST-запрос к файлу, который возвращает HTML код select с option (берет из БД)...ну и позиционирует в нужном
    могу скинуть свой пример:

    Код:
        var msgform = $("#sendmessage");
        var flag_s = false;
        var to_contact_text = '';
        var to_contact_text_last = '';
     
        msgform.children("input[name='to_contact']").keyup(function() {
            to_contact_text = $(this).val();
            if(flag_s === false && to_contact_text != '') {
                flag_s = true;
                setTimeout(function() {
                    flag_s = false;
                    if(to_contact_text != to_contact_text_last) {
                        to_contact_text_last = $("#sendmessage input[name='to_contact']").val();
                        getNames(to_contact_text);
                    }
                }, 500);
            }
        });
     
        function getNames(user_name) {
            var data = [{name: 'name', value: user_name}];
            data.push({name: 'action', value: 'searchUsers'});
            $("#sendmessage div.ajax-loader-small-search").fadeIn(200, function() {
                $.post(    "/ajax/ajax.php", data)
                    .fail(
                        function()
                        {
                            alertify.error("Произошла ошибка AJAX запроса. Обратитесь к администратору.");
                        }
                    )
                    .done(
                        function(data)
                        {
                            data = JSON.parse(data);
                            if (data.ajax)
                            {
                                $("#search-result").fadeIn(100).html(data.html);
                            }
                            else
                            {
                                if(data.errorField)
                                    alertify.log(data.details);
     
                            }
                        }
                    );
                $(this).fadeOut(200);
            });
        }
     
    etosh, bokus и Шумадан нравится это.