Внедрение подсказок dadata на сайт
Введение
В формах можно использовать подсказки dadata как поле формы.
Пример на демостенде - https://demo.web-automation.ru/list/watch/dadata-suggestions---primery-podskazok-cherez-pole-formy-tipa-dadata---1126
Вы можете использовать подсказки для заполнения адресов, данных по фирмам, странам, ФИАС, email, имена и др.
Как работает механизм подсказок dadata.ru - https://dadata.ru/suggestions/
ВАЖНО. Dadata - внешний платный сервис, имеющих ежедневный лимит в 10 тыс запросов (300 заполнений). Оплата данного сервиса производится отдельно в личном кабинете Dadata. Тарифы Dadata - https://dadata.ru/pricing/
Как настроить использование подсказок dadata в форме
В GetLayout в SELECT 1 указываем в параметре DadataPublicToken ключ от сервиса dadata (он будет доступен посетителям в скрытом поле as-dadataToken на странице).
Тип поля формы - dadata (например, поле с кодом f1)
В GetItem формы указываем какой тип подсказок будем извлекать. Все типы подсказок https://dadata.ru/suggestions/usage/#dictionaries
CREATE PROCEDURE [dbo].[fm_ddt_getItem]
@itemID int,
@username nvarchar(256)
AS
BEGIN
select 'some value' f1,
'{"type": "party"}' options_f1,
'{"type": "country"}' options_f2,
'{"type": "metro"}' options_f3,
'{"type": "email"}' options_f4
END
ВАЖНО. В качестве значения необходимо передавать JSON, который мы ранее принимали от Dadata (если там не будет JSON, то поле при загрузке будет выводить значение поля, а внутренним значением поля будет {value: 'текущее значение'}).
После выбора и сохранения формы. Извлекаем поле f1, в нем будет JSON структура со всеми данными по найденному элементу.
CREATE PROCEDURE [dbo].[fm_ddt_saveItem]
@username nvarchar(256),
@itemID int,
@parameters ExtendedDictionaryParameter READONLY
AS
BEGIN
declare @pf1 nvarchar(max)
select @pf1 = Value2 from @parameters where [key]='f1'
print @pf1 -- здесь весь JSON
declare @value nvarchar(max) = JSON_VALUE (@pf1 , '$.value' )
print @value -- а здесь извлекаем одно поле.
END
При этом сохранять лучше всю структуру данных в отдельное поле для корректной загрузки формы на редактирование в будущем.
ВАЖНО. Если у вас что-то не отображается (например, в подсказках компании Адрес или ИНН), проверьте написание типа по документации. Например, необходимо писать PARTY, а не party (если написать party, то список работает, но не показывает дополнительные данные).
Как вызвать JS коллбек при выборе значения
Иногда требуется что-то сделать при выборе значения из подсказок Dadata (например, заполнить другие поля).
Для этого прописываем в настройках поля код коллбека и реализуем JS функцию.
GetItem SQL:
select '' f1,
'{"type": "party","callback": "callf1"}' options_f1
JS:
as.callbacks["callf1"] = function(suggestion){
console.log("sug", suggestion);
}
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- API, Интеграции Создание сервиса API для сайта. Программный интерфейс веб-платформы Как сделать вебхук (webhook) Прием платежей через Яндекс.Кассу Онлайн-платежи. Интеграция с Робокассой (платежный шлюз) Zapier интеграция на платформе Falcon Space Интеграция API DaData.ru подсказки по адресам Интеграция коллтрекинга МАНГО ОФИС (режим Площадка) Интеграция API Курсы валют Центрального Банка РФ в веб-платформе Falcon Space Интеграция API Почта РФ Интеграция API Служба доставки СДЭК (CDEK) Интеграция API Служба доставки Деловые линии Интеграция API IpGeoBase Город по IP-адресу Интеграция импорт и парсинг файла CSV Интеграция API DaData.ru Город по IP-адресу Как вычислить расстояние между 2 точками с координатами через Google Maps Передача файлов по FTP Сканирование штрихкодов и QR кодов через камеру и с картинок Получение данных контрагента по ИНН Прием платежей на сайте через CloudPayments Программное взаимодействие через API между 2 разными экземплярами Falcon Как сделать интеграцию с Мой Склад Внедрение подсказок dadata на сайт Вывод точек на карте Яндекс. Интеграция с Яндекс Карты Интеграция с телефонией Zadarma.com Как передать скрытый параметр при исходящем запросе из Request процедуры в Response Получение данных о контрагенте - интеграция с сервисом ЗаЧестныйБизнес Интеграция с AMO CRM Как импортировать данные в базу CRM из Google Контакты Вход/регистрация через ВКонтакте(vk.com) Интеграция CRM с онлайн чатом на сайте (Replain) Загрузка на форме текстовых файлов и обработка их в процедуре SaveItem Как связать yandex metrika clientID с пользователем на сайте и посмотреть полный путь его по сайту? Входящий API. Как учесть в отклике результат внешних действий в API
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- HOWTO
- HOWTO Таблицы
- HOWTO Формы
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы