Внедрение подсказок 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, то список работает, но не показывает дополнительные данные).
Если возникает ошибка чтения JSON, необходимо отключить стандартную обработку поля в плане атаки XSS и использовать ее облегченный вариант через функцию dbo.as_antiXSSLite
Как вызвать JS коллбек при выборе значения
Иногда требуется что-то сделать при выборе значения из подсказок Dadata (например, заполнить другие поля).
Для этого прописываем в настройках поля код коллбека и реализуем JS функцию.
GetItem SQL:
select '' f1,
'{"type": "party","callback": "callf1"}' options_f1
JS:
as.callbacks["callf1"] = function(suggestion){
console.log("sug", suggestion);
}
Ограничение выборки адресов по стране
Для того, чтобы искать адреса других стран, необходимо указать спец поле as-dadataCountry на странице:
<input type="hidden" class="as-dadataCountry" value="Казахстан">
Значение поля - название страны (Казахстан, Берарусь и т.д.).
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций Прием платежей через Яндекс.Кассу Онлайн-платежи. Интеграция с Робокассой (платежный шлюз) Zapier интеграция на платформе Falcon Space Интеграция коллтрекинга МАНГО ОФИС (режим Площадка) Интеграция API DaData.ru подсказки по адресам Интеграция API Курсы валют Центрального Банка РФ в веб-платформе Falcon Space Интеграция API Почта РФ Интеграция API Служба доставки СДЭК (CDEK) Интеграция API Служба доставки Деловые линии Интеграция импорт и парсинг файла CSV Интеграция API IpGeoBase Город по IP-адресу Интеграция API DaData.ru Город по IP-адресу Как вычислить расстояние между 2 точками с координатами через Google Maps Сканирование штрихкодов и QR кодов через камеру и с картинок Получение данных контрагента по ИНН Прием платежей на сайте через CloudPayments Как сделать интеграцию с Мой Склад Внедрение подсказок dadata на сайт Вывод точек на карте Яндекс. Интеграция с Яндекс Карты Интеграция с телефонией Zadarma.com Получение данных о контрагенте - интеграция с сервисом ЗаЧестныйБизнес Интеграция с AMO CRM Как импортировать данные в базу CRM из Google Контакты Вход/регистрация через ВКонтакте(vk.com) Интеграция CRM с онлайн чатом на сайте (Replain) Как связать yandex metrika clientID с пользователем на сайте и посмотреть полный путь его по сайту? Телеграм. Работа с файлами Как сделать обработку входящей почты (создание клиента в CRM из Email) Интеграция сайта с ChatGPT (openAI) Интеграция с Яндекс Метрика Интернет-эквайринг Тинькоф Банк Интеграция с платежным шлюзом LifePay Как сделать вебхук для передачи данных с Тильды на Falcon Space Пополнение средств через Yookassa (Юкасса) Тинькофф Банк - уведомление в учетную систему по операциям с расчетным счетом Интеграция с Ютуб. Получение роликов канала Интеграция с Ozon, Wildberries - извлечение статистики
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта