0
Completed

Гранулярные подсказки с индексом

Вадим 4 years ago in Подсказки • updated by Антон 1 year ago 11

Добрый день!
Приведите пожалуйста пример с гранулярными подсказками с использованием почтового индекса. Этот пример видел http://codepen.io/dadata/pen/cGkah?editors=101 , интересует пример когда по индексу будут заполняться поля региона и города, с дальнейшим правильным автокомплитом по улице.

Спасибо.

Answer
Under review
Добрый день! 
Расскажите, пожалуйста, более подробно про ваш кейс. Что вы хотите получить как конечный результат?
Форма как тут http://codepen.io/dadata/pen/cGkah?editors=101 , только добавляется отдельное поле Индекс в самом верху формы.
Пользователь вводит в индекс цифры индекса, и у него выпадают подсказки с вариантами индекса, региона и города. Как только пользователь выбрал вариант из списка автоматически заполняются поля Регион и Город. Далее пользователь начинает вводить улицу в поле Улица и у него должны выпадать подсказки с учетом ранее выбранных региона и города.

Так же пользователь может не заполнять поле Индекс, а сначала заполнить Регион и Город из подсказок. В этом случае должен автоматически подставиться индекс.
Спасибо за ответ!
Смотрите, тут есть такая проблема: в КЛАДР-е не проставлены индексы для многих городов и населенных пунктов. Например, для Москвы нет индекса. Соответственно, "вытащить" индекс можно только начиная с улицы.
Но и тут есть нюанс. Бывает так, что и у улицы нет индекса, пока не определен дом.
Например:
г Санкт-Петербург, ул 2-я Жерновская, д 46 - индекс 195030
г Санкт-Петербург, ул 2-я Жерновская, д 23 - индекс 195043
2 дома на одной и той же улице имеют разные индексы. 
Поэтому можно сделать пример с поиском через улицы, но его надежность будет оставлять желать лучшего, он просто не будет находить некоторые улицы, вроде той, что в примере.
Не понял как ваш ответ относиться к первой части вопроса?
Пользователь вводит в индекс цифры индекса, и у него выпадают подсказки с вариантами индекса, региона и города. Как только пользователь выбрал вариант из списка автоматически заполняются поля Регион и Город. Далее пользователь начинает вводить улицу в поле Улица и у него должны выпадать подсказки с учетом ранее выбранных региона и города

По поводу подстановки индекса после выбора улицы - можно подставить один индекс, после выбора дома скорректировать на другой.
Спасибо за комментарий!

> Пользователь вводит в индекс цифры индекса, и у него выпадают подсказки с вариантами индекса, региона и города.

Определить индекс до выбора улицы в большинстве случаев нет возможности, т.к. поле индекса, которое берется из КЛАДР, обычно пустое для городов и населенных пунктов.
Возьмем, к примеру, Москву - для нее поле индекса в КЛАДР пустое. То есть автоматически заполнить поля Регион и Город на основании значения индекса не выйдет, потому что есть регион Москва и город Москва, но для них в КЛАДР не проставлен индекс, и значение индекса будет нулевое.
Непустой индекс начинает появляться в полях на уровне улиц, но, как понимаю, это не то, что вы хотите.
Спасибо за ответ!

Видимо мы с вами друг друга не поняли. Хорошо, я более подробно распишу процесс.

>Возьмем, к примеру, Москву - для нее поле индекса в КЛАДР пустое. То есть автоматически заполнить поля Регион и Город на основании значения индекса не выйдет, потому что есть регион Москва и город Москва, но для них в КЛАДР не проставлен индекс, и значение индекса будет нулевое.

Давайте возьмем индекс 107140 который соответвует Московскому адресу. По вашим словам определить регион и город по индексу для Москвы невозможно. Но возьмите этот индекс и вставьте в свое демо поле подсказок на сайте. О чудо! Оно работает, хотя вы говорили что не должно. В подсказках выпали несколько разных адресов, отличающихся улицами, но они все московские. Так все таки можно сказать что это Москва если выкинуть из результата улицы и сгруппировать по городу?

Как я вижу техническую реализацию - при вводе индекса уходит запрос на подсказки в режиме выбора города. Соответственно пользователь видит подсказки - индекс,  регион, город. При выборе варианта поля индекс, город и регион - заполняются автоматически. Далее пользователь переходит к заполнению улицы и подсказки улиц идут с учетом заполненных значений региона и города (как в обычных гранулярных подсказках).


+1
На словах как-то не очень получается донести все нюансы ).

Давайте попробуем на практике — http://codepen.io/anon/pen/zxGbZQ

Попробуйте ввести индекс "309" и вы увидите, о чем идет речь.
То что нужно, спасибо!
Допилил для своих нужд.
Искал три дня как это сделать, обязательно добавьте этот пример в документацию!!!!!!