За последние 24 часа нас посетили 16734 программиста и 1679 роботов. Сейчас ищут 842 программиста ...

Атрибуты выпадающего списка, как ускорить выбор в выпадающем

Тема в разделе "JavaScript и AJAX", создана пользователем sevalery, 20 июл 2011.

  1. sevalery

    sevalery Активный пользователь

    С нами с:
    11 ноя 2010
    Сообщения:
    14
    Симпатии:
    0
    В форме ввода есть большой выпадающий список. При помощи каких атрибутов или дополнений, в результате ввода будет подставлено (и выделено) первое подходящее значение (буквы) из списка. Если Вы продолжаете вводить текст, в поле ввода и далее будет подставляться подходящее значение, но уже с учетом введенного Вами текста. (типа autoFill).
    Вот часть кода ввода формы - object.php:
    PHP:
    1. <tr class="o_two">
    2. <td>Улица</td>
    3. <td>'.selectoptions($street_select_data, $_POST['street'],'street').'</td>
    4. </tr>
    Это откуда берется список улиц - config.php
    PHP:
    1. // Улица
    2. $street_select_data=array(
    3.   ''     =>    'не указано',
    4. '101'    =>    'Антонова',
    5. '102'    =>    'Арбузова',
    6. '103'    =>    'Береговая'
    7. );
    Хочу ускорить выбор улицы в выпадающем списке.
    Я создал выпадающий список на jQuery он работает прекрасно, но названия улиц идут в скрипте
    [js]$(function() {
    var availableTags = [
    'Антонова',
    'Арбузова',
    'Береговая'
    ];
    $( "#tags" ).autocomplete({
    source: availableTags
    });
    }); [/js]
    Названия улиц записывается в БД полным именем (увеличивая размер базы и время обработки запросов). Есть возможность добавлять новые улицы (+), но возможно введение улиц с ошибками, созданием нескольких вариантов тех самых улиц (-), что ухудшает работу поиска. Мне нужен быстрый выбор (по начальным буквам) из имеющегося списка.
    В моем варианте это шаблоны Smarty, в БД записываются цифры соответствующие улицам ('101').
    Есть несколько аналогичных списков - регион, город, район, населенный пункт. и.тд. значение каждого записывается в БД в виде цифр.
    Пытался прикрутить выпадающий список на jQuery к select_data. Не получается.
    Может есть у кого подобный опыт!
     
  2. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    А точно не проще сделать нормальный индекс по этому полю в базе? насколько я помню, индек по строковому полю вполне нормально работает если поиск идет по началу строки, а это как раз твой случай.

    Обычно, кстати, автокомплиты настраивают так, чтобы они работали начиная с третьей буквы, а не с первой, тогда выборка из базы получается намного меньше и работает это все намного быстрее.
     
  3. alex4715

    alex4715 Активный пользователь

    С нами с:
    9 май 2009
    Сообщения:
    35
    Симпатии:
    0
    Насколько я понял это jquery UI, так вот на сайте есть документация о нём есть много ресурсев с русской документацией и примерами, где всё прекрасно написанное. Чтобы всё работало быстро надо сделать так: по введению второй буквы идёт ajax запрос, он получает объект\массив и последующий ввод букв идёт по полученому объекту\массиву. Соответственно скорость работы скрипта увиличивается в разы, ну а техническое решение этого есть на просторах интернета.