![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Нужен сабж.
Есть JS-массив, где ключи - id, а значение - текст. Пользователь в input text вводит текст, по которому нужно выбирать из массива ключи. Это поиск городов. Т.е. юзер вводит начальные буквы, мы ищем все подходящие варианты. Т.е. по событию, начиная с появления 3-х символов в инпуте, ищем значения. Вопрос в том, как их найти икак получить соответствующие ключи массива? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
в Росcии >1000 городов. Я как-то выковыривал информацию о городах+адресах из fias, получил 32к записей о населенных пунктах (за вычетом аулов, дачных поселков и т.д.) и подумал, что эта задача не для юзерского скрипта. В итоге в базе в таблице городов есть еще 3 ключевых поля - первая буква имени, две первые буквы, три первые буквы.
Javascript посылает запрос с этими буквами, база быстренько фильтрует по ключам и выплевывает список с ограничением на 100 результатов, отсортированных по населению. Юзеру проще добить новую букву, чем листать список городов. Это я про то, что гигантские массивы в Javascript, imho, зло. А маленькие масивы можно смотреть чем угодно
например. Это сообщение отредактировал(а) ksnk - 11.2.2013, 17:02 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Мне "все города России" не нужны. Ок, с таблицами 1-2-3 ясно. Но, предположим, пользователь вводит длинное название города. Ввел уже 4-5 символов...
Как тут быть дальше? Если упереться только в 3 символа и искать по ним, то это будет не красиво, т.к. при введении 4-5 символов будет висеть все тот же список что и для 3. Как тут быть, перебирать вручную из данных 3-ки? Если будут примеры, просьба на чистом JavaScript, без jQuery. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Я обычно выдавал сервером список по 3-м первым буквам. Он, обычно, не очень большой. Дальнейшая работа с ним шла у клиента.
Мне больше нравится `bootstrap, typeahead`. Правда там jquery. А так - любой `javascript autocomplete`. В принципе, по трем буквам получается достаточно небольшой список, чтобы его можно было отфильтровать уже в php, или дополнительным LIKE условием в запросе. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |