API Выбор города из выпадающего списка по начальным буквам (API+Ajax)


Содержание

API подсказок по адресам

Ищет адреса по любой части адреса от региона до дома («тверская нижний 12» → «Нижегородская обл, г Нижний Новгород, ул Тверская, д 12»). Также ищет по почтовому индексу («105568» → «г Москва, ул Магнитогорская»).

Что умеет и не умеет

✔️ Находит актуальные адреса по историческим названиям (Свердловск → Екатеринбург) и синонимам (Питер → Санкт-Петербург).

✔️ Ищет по частичному совпадению («москва болот» → «г Москва, Болотная наб»), но только в последнем слове запроса («мос болот» не найдет).

✔️ Исправляет опечатки («самара авиционная») и запросы в неправильной раскладке («vjcrdf» → «москва»).

✔️ Раскладывает выбранный адрес на гранулярные части (от региона до квартиры).

✔️ Поддерживает гранулярные подсказки по отдельным частям адреса (регионы, города, улицы, дома).

✔️ Подсказывает адреса в конкретных регионах, районах, городах и населенных пунктах. Понимает названия («Петергоф»), коды КЛАДР («7800000800000») и ФИАС («8f238984-812b-4bb1-850b-49749fb5c56d»).

✔️ Учитывает, где вы находитесь (в связке с методом город по IP-адресу).

❌ Автоматически (без участия человека) обработать адреса из базы или файла.

❌ Транслитерировать (moskva suhonskaja 11 → 127642, г Москва, ул Сухонская, д 11).

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

Для автоматической обработки и транслитерации используйте API Стандартизации

Как вызвать

Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.

Укажите при вызове:

  • Content-Type: application/json или application/xml .
  • Accept — аналогично.
  • $ — API-ключ.

Тело запроса передавайте в кодировке UTF-8 .

Что в ответе

Объект с массивом подсказок в поле suggestions :

Пример ответа

Название Описание
Базовые поля, заполняются для всех тарифов
value Адрес одной строкой (как показывается в списке подсказок)
unrestricted_value Адрес одной строкой (полный, с индексом)
data.postal_code Индекс
data.country Страна
data.country_iso_code ISO-код страны (двухсимвольный)
data.federal_district Федеральный округ
data.region_fias_id Код ФИАС региона
data.region_kladr_id Код КЛАДР региона
data.region_iso_code ISO-код региона
data.region_with_type Регион с типом
data.region_type Тип региона (сокращенный)
data.region_type_full Тип региона
data.region Регион
data.area_fias_id Код ФИАС района в регионе
data.area_kladr_id Код КЛАДР района в регионе
data.area_with_type Район в регионе с типом
data.area_type Тип района в регионе (сокращенный)
data.area_type_full Тип района в регионе
data.area Район в регионе
data.city_fias_id Код ФИАС города
data.city_kladr_id Код КЛАДР города
data.city_with_type Город с типом
data.city_type Тип города (сокращенный)
data.city_type_full Тип города
data.city Город
data.city_district_fias_id Код ФИАС района города (заполняется, только если район есть в ФИАС)
data.city_district_kladr_id Код КЛАДР района города (не заполняется)
data.city_district_with_type Район города с типом
data.city_district_type Тип района города (сокращенный)
data.city_district_type_full Тип района города
data.city_district Район города
data.settlement_fias_id Код ФИАС нас. пункта
data.settlement_kladr_id Код КЛАДР нас. пункта
data.settlement_with_type Населенный пункт с типом
data.settlement_type Тип населенного пункта (сокращенный)
data.settlement_type_full Тип населенного пункта
data.settlement Населенный пункт
data.street_fias_id Код ФИАС улицы
data.street_kladr_id Код КЛАДР улицы
data.street_with_type Улица с типом
data.street_type Тип улицы (сокращенный)
data.street_type_full Тип улицы
data.street Улица
data.house_fias_id Код ФИАС дома
data.house_kladr_id Код КЛАДР дома
data.house_type Тип дома (сокращенный)
data.house_type_full Тип дома
data.house Дом
data.block_type Тип корпуса/строения (сокращенный)
data.block_type_full Тип корпуса/строения
data.block Корпус/строение
data.flat_type Тип квартиры (сокращенный)
data.flat_type_full Тип квартиры
data.flat Квартира
data.postal_box Абонентский ящик
data.fias_id Код ФИАС:
  • HOUSE.HOUSEGUID , если дом найден в ФИАС по точному совпадению;
  • ADDROBJ.AOGUID в противном случае.
data.fias_level Уровень детализации, до которого адрес найден в ФИАС:
data.kladr_id Код КЛАДР
data.geoname_id Идентификатор объекта в базе GeoNames. Для российских адресов не заполняется.
data.capital_marker Признак центра района или региона:
data.okato Код ОКАТО
data.oktmo Код ОКТМО
data.tax_office Код ИФНС для физических лиц
data.tax_office_legal Код ИФНС для организаций
data.history_values[ ] Список исторических названий объекта нижнего уровня.
Если подсказка до улицы — это прошлые названия этой улицы, если до города — города.
Дополнительные поля, заполняются в зависимости от тарифа
Заполняются при выборе конкретной подсказки. До этого они пустые.
Все тарифы
data.geo_lat Координаты: широта
data.geo_lon Координаты: долгота
data.qc_geo Код точности координат:
data.fias_code Иерархический код адреса в ФИАС (СС+РРР+ГГГ+ППП+СССС+УУУУ+ДДДД)
data.fias_actuality_state Признак актуальности адреса в ФИАС
data.city_area Административный округ (только для Москвы)
«Расширенный» и «Всё включено»
data.beltway_hit Внутри кольцевой?
data.beltway_distance Расстояние от кольцевой в километрах
Только «Всё включено»
data.flat_area Площадь квартиры
data.square_meter_price Рыночная стоимость м²
data.flat_price Рыночная стоимость квартиры
data.timezone Часовой пояс
data.metro[ ] Список ближайших станций метро (до трёх штук)
└ name — название станции
└ line — название линии
└ distance — расстояние до станции в километрах
Зарезервированы для автоматической обработки адресов через API стандартизации
data.qc_complete
data.qc_house
data.qc
data.unparsed_parts
Не используются
data.source

Координаты есть у 96% домов в Москве, 88% в Санкт-Петербурге, 74% в других городах-миллиониках и 47% по остальной России.

Площадь и стоимость есть у 70% квартир в России.

Коды ответа на запрос

HTTP-код ответа Описание
200 Запрос успешно обработан
400 Некорректный запрос (невалидный JSON или XML)
401 В запросе отсутствует API-ключ
403 В запросе указан несуществующий API-ключ
Или не подтверждена почта
Или исчерпан дневной лимит по количеству запросов
405 Запрос сделан с методом, отличным от POST
413 Слишком большая длина запроса или слишком много условий
429 Слишком много запросов в секунду
5xx Произошла внутренняя ошибка сервиса

Примеры вызова

Гранулярные подсказки (отдельно регион, отдельно город, отдельно улица)

Ограничения

Для иностранных адресов заполнен ограниченный набор полей, вне зависимости от тарифного плана: почтовый индекс, страна, регион, населенный пункт, часовой пояс и геокоординаты. Прочие поля — пустые.

При работе через API «пользователь выбрал конкретный адрес» — это запрос с параметром count = 1 . При этом текст запроса должен быть результатом одного из предыдущих запросов (значением поля unrestricted_value ).


Количество условий в параметрах locations и locations_boost — не более 10.

Длина запроса (параметр query ) — не более 300 символов.

Количество запросов в день — в соответствии с тарифным планом.

Максимальная частота запросов — 20 в секунду.

Максимальная частота создания новых соединений — 60 в минуту.

Частые вопросы

По адресам

Да, есть подсказки по всем городам мира. Чтобы их включить, передайте параметр country = «*» :

Как часто обновляется справочник адресов (ФИАС)?

В течение двух дней после выхода обновления в налоговой. При условии, что в налоговой ничего не разломали (это случается).

Почему индекс неправильный — не такой, как у Почты России?

Дадата работает по объединенному справочнику налоговой службы (ФИАС) и Почты России. В нем исправлены более 7 000 некорректных и отсутствующих индексов.

К сожалению, справочник индексов Почты детализирован только до населенных пунктов. Привязки к улицам и домам нет. Поэтому все-все индексы исправить не удалось.

Если получили от Дадаты неправильный индекс — отправьте адрес через специальную форму. Мы исправляем ошибки ежемесячно.

Почему подсказки не возвращают геокоординаты и район города?

Подсказки возвращают геокоординаты и район после того, как человек выбрал конкретный адрес из списка.

В API это запрос с параметром count = 1 . При этом текст запроса должен быть результатом одного из предыдущих запросов (значением поля unrestricted_value). Например:

Почему подсказки не возвращают площадь квартиры, ближайшее метро и часовой пояс?

Эти поля возвращаются только для тарифа «Всё включено».

Причём после того, как человек выбрал конкретный адрес из списка. В API это запрос с параметром count = 1 .

Почему подсказки не возвращают коды качества?

Подсказки в принципе не возвращают коды качества, потому что не занимаются разбором адресов. Для этого есть стандартизация.

Почему на картах дом есть, а в подсказках — нет?

Подсказки используют справочник адресов налоговой службы (ФИАС). В нем нет некоторых реально существующих домов и строений. К сожалению, более полной базы, чем ФИАС, просто не существует.

Чтобы добавить дом в подсказки, отправьте его через специальную форму. Мы пополняем справочник ежемесячно.

Общие

  • Не подтверждён адрес эл. почты. Проверьте почтовый ящик и папку «спам» — там должно быть письмо от «Дадаты».
  • В запросе указан неправильный API-ключ. Проверьте в личном кабинете
  • Исчерпан лимит запросов на день. Проверьте в личном кабинете
  • Вы делаете запросы с сервера, при этом настроена привязка к домену. Отключите привязку к домену, либо делайте запросы из браузера.

Что будет, если превысить 10 000 бесплатных запросов в день?

Подсказки перестанут подсказывать ツ До начала нового дня, затем снова заработают.

10 000 запросов считаются суммарно по всем видам подсказок: адреса, ФИО, организации, банки, емейлы.

Как защитить API-ключ от злоумышленников?

Если вы используете jQuery-плагин Подсказок, то API-ключ можно посмотреть в исходном коде страниц вашего сайта. Чтобы злоумышленник не мог воспользоваться вашим ключом, можно привязать его к конкретному домену в личном кабинете.


Если вы подключили Подсказки не через jQuery-плагин, а из программы через API, злоумышленник не сможет подсмотреть ключ. В этом случае привязка к домену не требуется.

Если вы используете и jQuery-плагин, и работу через API — привязку к домену придётся отключить (иначе она «не пропустит» API-запросы). Мы рекомендуем использовать что-то одно — или плагин, или API — но не оба способа одновременно.

Стоимость

Бесплатно до 10 тысяч запросов в день. Больше — в составе годовой подписки.

Получение местоположений через API Битрикс c поиском по select.

Если нужно получить список городов из модуля «Местоположения» можно воспользоваться API Битрикс. Данные местоположения можно использовать в любом месте сайта или в любом компоненте. Например в профиле пользователя или формах обратной связи.

Получение местоположений и вывод их в select

Для примера, буду выводить города в профиле пользователя. Данные должны записаться в стандартное поле «Город» с кодом «PERSONAL_CITY»

Сначала импортируем местоположения. Для этого проходим в административную панель по пути Магазин -> Настройки -> Местоположения -> Импорт местоположений и выбираем нужные данные. Для примера, я выберу регион Россия->Центр

Дожидаемся окончания импорта. Затем идем в шаблон компонента main.profile и открываем файл template.php в нужном месте шаблона вызываем местоположения с помощью API \Bitrix\Sale\Location\LocationTable::getList пока выводим все города, просто списком

Где в массивах:
‘filter’ — передали ID типа местоположения. В моем случае это 5-ый, города. И языковые настройки. Сюда можете предать любые типы: Улицы, Села, Страны, Регионы.
‘select’ — передали нужные для вывода данные, в моем случае русские названия (городов).

В итоге, получили список всех городов импортированных в местоположения. Теперь оформляем это в список c выбором select, где первым option (по умолчанию) будет ранее выбранный и сохраненный город. Самому селекту назначаем name=»PERSONAL_CITY», что бы он сохранялся в стандартное поле пользователя- Город

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

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

Реализуем удобный поиск по select, который будет подбирать значения в процессе ввода данных. выглядет например, так:

Для этого воспользуемся готовым плагином SELECT2. Просто подключаем приложенные скрипты и файлы стилей. Можно подключить их прямо в template.php, если используете данный способ только в кабинете пользователя

Для select задаем любой удобный . И указываем плагину, какой select он должен обработать. Целиком это будет выглять так (комментарии прямо в коде):

Само собой, стили и скрипты плагина, лучше всего подключать через API Битрикс, для оптимизации работы. В примере оставил «по старинке», что бы не усложнять объяснение.

В общем-то и все. Использовать данный плагин можно с любым select-ом. Так же и получение местоположений, можете использовать в любом месте сайта, в любом компоненте или шаблоне.

Мобильные формы: чем заменить выпадающие списки Материал редакции

Советы UX-дизайнера из IBM Золтана Коллина.

Формы в виде выпадающих списков кажутся очевидным дизайнерским решением: их легко и дешево создать, они не занимают слишком много места, автоматически подтверждают введенную информацию, поддерживаются всеми браузерами и платформами, и пользователи уже к ним привыкли.

Дизайнеры чаще всего используют выпадающие списки не к месту, а по мнению директора по продукту Google Люка Вроблевски, к этому шаблону следует прибегать только в самом крайнем случае.

Давайте рассмотрим некоторые ограничения:

  • Опции выпадающего списка невидимы до тех пор, пока пользователь не кликнет или не коснется формы. Кроме того, с первого взгляда невозможно предсказать, сколько строк будет в списке — две или пятьдесят.
  • Выбор опции из выпадающего списка — это многоступенчатый процесс, особенно на мобильных устройствах: сперва пользователю нужно коснуться формы и открыть варианты, пролистать вниз и найти нужный, выбрать его и закрыть список.
  • Из-за выпадающих списков дизайнеры становятся ленивыми, ведь это так просто — добавить все возможные опции в один перечень без какой-либо приоритизации. Из-за этого выпадающий список очень похож на другой шаблон — меню «гамбургер».
  • Листать длинные списки, вроде выбора страны, — это кошмар. Особенно на мобильных устройствах, где поиск с клавиатуры обычно недоступен.
  • На некоторых устройствах поле для отображения вариантов очень мало, поэтому пролистывание может превратиться в кошмар.

Хорошая новость заключается в том, что существует большое количество альтернативных элементов для ввода данных, которые во многих случаях сработают лучше выпадающих списков.


Оцените количество вариантов

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

Для небольшого количества взаимоисключающих опций подойдет форма в виде радиокнопок или кнопок Segmented Control. Пользователь сразу увидит все доступные варианты, и ему не придется раскрывать список.

Используйте форму ввода с отфильтрованным выпадающим списком для большого количества точно определенных вариантов, когда пользователь точно знает, что ему нужно найти.

Для больших и разнообразных списков лучше использовать существующие пользовательские данные, чтобы в список попали популярные варианты ответа. В этом случае 90% пользователей смогут сразу выбрать необходимую опцию, а оставшиеся 10% — кликнут по варианту «Другое», который будет уточнен в следующем вопросе.

Оцените предпочтительную форму ввода

Одно из преимуществ выпадающего списка заключается в том, что пользователям не нужно много печатать. Однако если печатать нужно немного, и данные запрашиваются довольно часто (например, личная информация), то их удобнее вводить, а не выбирать из списка.

Говоря в целом, числовая клавиатура — самый эффективный способ ввести числовое значение.

Если вам важно подтвердить данные, которые вводит человек, используйте форму ввода с отфильтрованным выпадающим списком.

Это особенно важно, если порядок сортировки элементов списка ясен не до конца.

То же относится к списку стран.

Для целых чисел — например, количества пассажиров или товаров в корзине, — лучше всего использовать степпер. Он позволит пользователям увеличивать или уменьшать значение по одному клику.

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

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

Подумайте, как можно сделать выпадающий список умнее

​Конечно, вам не следует полностью отказываться от таких шаблонов: в некоторых случаях без них не обойтись. И это нормально, просто попробуйте сделать выпадающий список как можно более удобным для пользователей.

  • Используйте понятное название формы, которое не потеряет смысла даже при раскрытом списке. Например, «Выберите тип» вместо «Пожалуйста, выберите».
  • Сортируйте значения выпадающего списка в зависимости от пользовательских данных, выдвигая на верхние строчки самые популярные варианты. Или же поставьте самый популярный вариант по умолчанию.
  • Смартфоны и браузеры собирают о пользователях множество информации, включая данные о местонахождении. Используйте ее для автозаполнения форм.
  • Сократите количество полей и позвольте компьютеру сделать свою работу. Например, если человек вводит индекс, то компьютер должен сам распознать город и штат — незачем просить пользователя ввести эту информацию. То же самое — если человек вводит номер банковской карточки, система может сама понять — Visa у него или MasterCard.
  • Используйте API других сервисов — зарегистрироваться через Facebook и оплатить через PayPal всегда проще, чем вводить данные вручную.

Чтобы узнать больше о разработке выпадающих списков, посмотрите лекцию известных UX-дизайнеров Голдена Кришны и Эрика Кэмпбелла с фестиваля SXSW.

Коротко: выпадающие списки для своих задач заменить нечем, их можно только улучшить.

Каким нужно быть ушлепаном чтобы сделать 5-значный ZIP код выпадающим списком)
Или выбор количества товара — так никто уже не делает.

сегодня пиццу заказывал, в корзине выпадающий список на количество, а 0 в нем для удаления объекта из корзины. плакал кровавыми слезами.

Да, тут я видимо погорячился. Ну бросьте им ссылку, если пиццуля вкусная)

Спросите сначала пользователя: Вы любите головоломки? Да/Нет/Хочу попробовать
И в зависимости от ответа загрузится соответствующий интерфейс.

Заставлять пользователя вбивать 4х значный год рождения с клавиатуры — это ад и садизм.
Проставлять в скролле 2020 год в качестве года рождения by default — тоже.

А какой год советуете проставлять по-умолчанию?
По мне так селекты с любым годом по-умолчанию — ад и садизм.

Заставлять мобильных пользователей вбивать что-то с клавиатуры — плохая практика. Это долго и не удобно.
Для веба текстовые инпуты это ок, для мобайла это медленно и мучительно открывающаяся клавиатура, переключение раскладки на цифры (можно, конечно, бережно проставить content type, но сильно зависит от того, какая клавиатура включено у пользователя).
Плюс, всё таки, работа с цифровым блоком мобильной клавиатуры редко удобна в режиме работы одной рукой.

Селекторы дат ввиде скроллеров — не сильно приятнее, но значительно быстрее, если там есть нормальные default state, а не приходится листать год с начала времен.
Какую дату ставить по дефолту? Я бы сказал, что для дня и месяца это 15 и 6 соотв, для года — в зависимости от цели.
Условно, если вашему пользователю не может быть меньше 18 лет, то делать доступным выбор 2020 года в качестве даты рождения — так себе идея, можно ограничиться условным 2000.


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

Что руками, что в селекторах будут вбивать от балды. Просто руками это будет делать дольше и не удобнее.
Порнхабу нужно проверять, что пользователь старше условных 18 лет, достаточно поставить default state крутилок на 16 лет, 11 месяцев, 29 дней (или любое другое невалидное состояние) и все будет ок.
Таким образом пользователь, желающий вбить реальную дату — вобьет, пользователь желающий вбить рандомную дату, но удовлетворяющую требованиям сервиса — вобьет и сделает это быстрее, а пользователь желающий тупо кликнуть submit ничего не заполняя будет редиректнут на walt disney.

Зачем делать 10 обращений на сервер? Кол-во товара подгружаете при загрузке страницы, а валидируете (что столько товара все ещё есть) — перед оплатой.

Между + – ставлю инпут, а не просто число. Когда нужно ввести большое значение, люди вводят руками.

API Выбор города из выпадающего списка по начальным буквам (API+Ajax)

Плагин KLADR for Virtuemart + OPC является системным плагином для Joomla версий 2.5 и 3.x, который при вводе адреса делает аякс запросы к сервису (например, первые 2 буквы названия города) и в ответ получает список объектов (например, городов) в названии которых есть эти два введенных символа. Выводит полученные города выпадающим списком автозаполнения. Покупатель видит город — щелкает по нему и заполняется поля города и региона. Далее, вводим улицу — и также делаем аякс запрос и получаем от сервиса список подходящих улиц для выбранного города. А уже при выборе улицы можем заполнить поля улица и индекс.

ВНИМАНИЕ.
Если вы планируете использовать отображение яндекс карты, то для ее работы необходимо получить ключ API , получиить его можно здесь https://developer.tech.yandex.ru

  • Совместимость с Virtuemart 3 + OPC (One Page Checkout)
  • Настройка собственных имен полей для вывода (регион, город, улица и т.д.).
  • Настройка вывода яндекс карты, по выбранному адресу.
  • Настройка вывода блока с введенным адресом.
  • Добавлена возможность самому указывать родительский селектор формы, содержащий поля ввода адреса
  • Исправлена ошибка «TypeError: select_val is undefined», возникавшая если не используется выпадающий список выбора региона Virtuemart в форме заполнения адреса
  • Добавлена возможность отключать автозаполнение поля ИНДЕКС
  • Добавлена возможность Скрыть в выпадающем списке поле о бесплатной версии KLADR
  • Добавлено поле ввода ключа API Яндекс.Карт

Drupal Русскоязычное сообщество

Задача довольно распространенная. Наверняка, есть хорошее решение.
Есть задача определить местоположение пользователя и вывести в шапку его город. Однако город должен быть ближайший из собственного списка городов. Например, если пользователь из Арамиля, то выводим Екатеринбург, если Лобня, то выводим Москва и т.п..
Кроме того, должна быть возможность выбрать город из выпадающего списка, если вдруг ошиблись. Наверняка есть какой-то модуль, который позволяет это сделать.

Лучший ответ

Комментарии

Неужели никто с геолокацией не сталкивался.. :( Это же на каждом третьем сайте есть.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

Много кто сталкивался, просто «Наверняка есть какой-то модуль, который позволяет это сделать.» — ошибочное суждение.

И, нет, этого нет «на каждом третьем сайте», но есть множество разнообразий похожих с этим кейсов.

В целом, Вам смотреть в сторону API Geolocation, и сопрягать с текущими подходами в структуре сайта, используемыми картами и логикой выборки для «автоматического определение города пользователя из своего списка».

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии


Хороший модуль. А есть где-то список регионов и городов, которые он в теории может выдать?

H Создание выпадающего HTML списка с большим количеством записей с помощью PHP и MySQL в черновиках Из песочницы

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

Мысль первая:

Использовать мультикрусор для добавления перед названиями городов тега:

Подключаемся к базе, «вытаскиваем» записи и в цикле, создаем записи выпадающего списка вставляя название города и в атрибут value и между тегами. И, в необходимом месте нашего главного документа, просто подключим все это через include.

Результат, меня, честно, очень порадовал. Не смотря на то, что нужно затронуть PHP и MySQL, затрачивается в сотни раз меньше времени, чем просто «клепать» все это на HTML.

Все необходимые файлы я прикрепляю ниже. Спасибо за внимание! Успехов!

Интеграция с сервисом Dadata.ru для реализации выпадающего списка с адресами

Добавьте колонку в группу, в которую Вы хотите, чтобы добавлялись контакты с формы.

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

После того, как мы создали нужную колонку создадим форму.

Добавим в форму наше поле с городом и копируем полученный исходный код для вставки на сайт.

Получается вот такая форма с таким кодом. (В коде опущены секции style и script т.к. в данном примере они не нужны)

Для создания списка со всеми возможными адресами воспользуемся сервисом https://dadata.ru/

После успешной регистрации необходимо перейти в личный кабинет.

Сгенерировать api ключ.

И перейти по адресу https://dadata.ru/suggestions/usage/#address и скопировать код плагина, который будет иметь примерно такой вид:

Вставим наш код после формы и слегка поправим его, чтобы в поле «Город» автоматически подставлялся населенный пункт без каких-либо других адресов.

Поправим наше поле для ввода города и добавим ему атрибут id со значением address.

Пример живого поиска на ajax

Как работает живой поиск

Файл search.js

Обработчик запросов search.php

Благодарю за оперативность.
Прописал следующий код ниже формы, результат не передается.

В чем может быть ошибка?

Привет!
У меня вопрос к тебе есть! Если ты конечно еще отвечаешь)))
Живой поиск настроил отлично и огромное тебе спасибо за него, но есть один нюанс.
Поиск должен работать с гугловской апишкой карт и при нажатии на элемент выдачи должно центрировать карту этой записи
Из базы данных тянем соответственно запись по запросу , например:
| seattle |
В выдаче получаем например несколько строк.
В каждой строчке в выдаче есть информация о адресе,названии и т.п.
Но в базе есть еще поля lattitude и longitude
Как мне прикрутить в экшене
$(«.search_result»).on(«click», «li», function() <
s_user = $(this).text();>

данные из бд и прилинковать в такую конструкцию?

var pos = <
lat: [some data],
lng: [some data]
>;
map.setCenter(pos);
>);

Если можешь, ответь мне на емейл?
twitter_work_one@mail.ru

не подскажете почему не могу подключиться к бд ?

пароли/имена все правильно

Вы же нигде не определяете эту переменную, сами сказали.
Вот так нужно:


ну или определить переменную выше:

А если проверить настройки css?
Вставить например для проверки

Код вставить на проверяемую страницу html.
Тогда будет видно ищет или нет.

Второй вариант — проверить в какой кодировке сохранен файл

Привет, а ты заменила строку:

в файле search.php ?
Нужно заменить поле name, что бы была выбрана информация из поля name из таблицы бд.
Если не работает, напиши в личку свой скайп и я помогу.

Спасибо, Владимир, за оперативную профессиональную помощь!

Владимир сделал 3 исправления и все заработало :)

1) — имя поля таблицы
я вместо имени поля указала имя таблицы.

2) в файле search.php — установили кодировку UTF-8 вместо UTF-8 (без BOM)

3) в корень тестового сайта добавили файл .htaccess, в котором указали кодировку по умолчанию

Все работает! Завтра повторю все эти манипуляции на работе, не сомневаюсь что и там теперь тоже все заработает.

Еще раз спасибо :)

Я понял, сейчас займусь

Зарегистрировался. Вроде ник — rikoff2009@yandex.ru
Скайпом раннее не пользовался, поэтому если не получится соединиться, пожалуйста, отправьте свой ник по почте, а я отвечу

В файле search.js стоит

Можно убрать его. Только он скрывается по клику, а не при наведении.

Ваш вариант работает корректнее чем

Невозможно что то выбрать из списка, сразу все поле исчезает

Добавьте в конец страницы .
Создайте стиль для этого класса, например:

Что-бы показать чёрный прозрачный фон, добавьте в нужное место скрипта jquery код:

есть код покороче.

к нему я еще добавил

код взят с Пишем свой простой вариант «живого поиска» . — только запустить у меня его не получилось. :-(

Вариант что вы посоветовали, не совсем то что мне нужно.
этот вариант у меня сначала закрывает «затемнение» а при 2-м клике уже убирает подсказку. я хотел что бы было как в модульных окнах, при 1м нажатии на затемнение все исчезает. Немного погодя додумаю что то попроще, когда с мыслями соберусь :-)

затемнение при поиске:

Пользуюсь этим скриптом уже довольно долго. Перед тем как выбрать самое лучшее решение «живого поиска» перелапатил много разных скриптов и с уверенностью могу сказать только одно — данный скрипт мал в объеме, прост и понятен (исходя из того что он делает). Как на мой взгляд необходимо было бы добавить парочку мелких доработок для улучшения восприятия людьми, такие как:

1. вывод не только наименования, но и цены, артикулы, картинки (смотря для каких сайтов).

2. добавить в код ограничение по выводу и сортировка по. (ORDER BY name LIMIT 15) кол-ва результатов, с дополнительным выводом фразы «просмотреть все» (то что не вошло в лимит поисковых результатов).

3. при отсутствии найденных результатов выводить информацию («поиск ничего не дал», «повторите ввод символов», . и т.п.)

4. добавить возможность исчезновения результатов поиска когда мышь не в фокусе или хотя бы по средствам кнопки «esc» (а то бывает что пользователь передумал что то искать, а результат висит как банный лист).

5. добавить возможность перемещаться с помощью кнопок клавиатуры по найденным результатам (вверх, вниз).

6. самое главное что бы можно было бы добавить, так это возможность при поиске выбирать части вводимых слов, а именно по разным (не по порядку) выбором слов в наименовании, например — («Электрочайник Delonghi KBZ 2001.GY Scultura Collection») можно было бы его найти по написании фразы в поиске «Delonghi Scultura» — что то вроде автодополнения, т.е. после нажатия на пробел появляется возможность поиска уточнений в уже найденных товарах.

Как получить данные из API с помощью ajax для выбора (значение опции выпадающего списка) в Codeigniter?

У меня есть код в моем коде, результат не отображается или не работает, выбор формы города по-прежнему пуст. Вот HTML:

Это javascript для получения данных от контроллера:

и это контроллер для получения данных из API:

Ваша функция не возвращает ничего в ajax, вам нужно echo json_decode

Вам не нужен json_decode(), просто напечатайте $ json_data. Потому что он уже возвращается как строка файлом_get_contents().

Преобразование возвращенных данных в объект JSON. И затем используйте его:

API Выбор города из выпадающего списка по начальным буквам (API+Ajax)

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

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

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Илон Маск рекомендует:  Что такое код domdocument &#62;get_elements_by_tagname
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL