Форумы портала PHP.SU » » Вопросы новичков » Атрибуты выпадающего списка, как ускорить выбор в выпадающем списке

Страниц (1): [1]
 

1. sevalery - 20 Июля, 2011 - 13:19:06 - перейти к сообщению
В форме ввода есть большой выпадающий список. При помощи каких атрибутов или дополнений, в результате ввода будет подставлено (и выделено) первое подходящее значение (буквы) из списка. Если Вы продолжаете вводить текст, в поле ввода и далее будет подставляться подходящее значение, но уже с учетом введенного Вами текста. (типа 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 он работает прекрасно, но названия улиц идут в скрипте
CODE (javascript):
скопировать код в буфер обмена
  1. $(function() {
  2. var availableTags = [
  3. 'Антонова',
  4. 'Арбузова',
  5. 'Береговая'
  6. ];
  7. $( "#tags" ).autocomplete({
  8.  source: availableTags
  9.         });
  10.     });

Названия улиц записывается в БД полным именем (увеличивая размер базы и время обработки запросов). Есть возможность добавлять новые улицы (+), но возможно введение улиц с ошибками, созданием нескольких вариантов тех самых улиц (-), что ухудшает работу поиска. Мне нужен быстрый выбор (по начальным буквам) из имеющегося списка.
В моем варианте это шаблоны Smarty, в БД записываются цифры соответствующие улицам ('101').
Есть несколько аналогичных списков - регион, город, район, населенный пункт. и.тд. значение каждого записывается в БД в виде цифр.
Пытался прикрутить выпадающий список на jQuery к select_data. Не получается.
Может есть у кого подобный опыт!
2. Slavenin - 20 Июля, 2011 - 19:16:27 - перейти к сообщению
первый вариант, грузите улицы/города и прочее из базы во время построения страницы в массивы js, затем при вводе букв ищете по ним, второй вариант, ajax запросы к серверу с динамической генерацией запроса к базе. первый вариант работает быстро и снижает нагрузку на сервак, но если улиц и прочих данных много, могут получится очень большие массивы и увеличиться нагрузка на браузер, третий вариант мне нравиться больше всего, хотя насчет его кроссбраузерности есть некоторые сомнения. Вкуриваете в HTML5->AppCache, HTML5->Хранилище Web, HTML5->Web Workers, почитать обо всем этом можно здесь http://www[dot]intuit[dot]ru/department/[dot][dot][dot]ass/free/status/ данные технологии позволят исключить сервер из обработки данных, не перегружать код ненужными массивами больших размеров и снизить нагрузку на сам браузер Подмигивание

 

Powered by ExBB FM 1.0 RC1