Урок 4 · Подготовка формы к передаче данных

04

Модуль 2 · Занятие 2

Подготовка формы
к передаче данных

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

Сверка

Поле формы ↔ колонка базы

Поле формыТипИмя переменнойОбяз.Колонка в базеТип в базе
ИмяТекстnameдаnametext
ТелефонТелефонphoneдаphonetext
EmailEmailemailнетemailtext
УслугаСписокserviceдаservicetext
ДатаДатаdateдаpreferred_datedate
КомментарийТекстcommentнетcommenttext
ИсточникСкрытоеutm_source—sourcetext
СогласиеЧекбоксconsentда—не хранится

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

Обязательность

Решаем по сценарию, а не по привычке

Обязательное

Без этого поля заявку нельзя обработать. Нет телефона — некуда позвонить. Нет услуги — непонятно, что записывать. Нет даты — нечего ставить в расписание.

Необязательное

Поле полезно, но без него заявка остаётся заявкой. Email, комментарий, «откуда узнали». Это данные «приятно иметь», а не условие работы.

Каждое лишнее обязательное поле — это люди, которые закрыли форму и не вернулись.

Валидация

Что умеет форма и чего она не гарантирует

Tilda проверяет сама

  • Обязательное поле не пустое
  • В email есть @ и домен
  • Телефон совпадает с маской
  • Дата выбрана в календаре, а не напечатана как попало

Проверить нельзя

  • Что телефон рабочий, а не +7 000 000-00-00
  • Что в поле «Имя» имя, а не «ааа»
  • Что дата не в прошлом и не в 2099 году
  • Что человек не отправил форму восемь раз подряд
Проверка в браузере — это удобство для честного пользователя, а не защита. Настоящая проверка живёт на сервере — в уроках 5 и 6.

Тексты

Что вернуть пользователю, а что молча исправить

СитуацияЧто делаемПлохой текстХороший текст
Пустое имяПоказываем ошибкуОшибкаКак к вам обращаться?
Email без @Показываем ошибкуInvalid emailПроверьте адрес: похоже, пропущена «собака»
Телефон короче маскиПоказываем ошибкуНеверный форматНужно 10 цифр после +7
Нет согласияПоказываем ошибкуПоставьте галочкуБез согласия мы не можем сохранить заявку
Лишние пробелы по краямЧиним молча——
Имя с маленькой буквыЧиним молча——
Телефон с 8 вместо +7Чиним молча——

Правило простое: если мы понимаем, что человек имел в виду, — исправляем сами и не отвлекаем его. Если не понимаем — спрашиваем, называя, что именно поправить.

Скрытое поле

Данные, которые пользователь не вводит

Что туда кладут

Источник перехода (utm_source), название страницы, идентификатор кампании, пометку «заявка с лендинга». Всё, что известно системе, но не человеку.

Добавляется в интерфейсе: блок формы → Контент → Добавить поле → «Скрытое поле». Руками в HTML ничего вписывать не нужно.

Что туда класть нельзя

API-ключи, токены, пароли, идентификаторы доступа к базе. Любой человек откроет исходный код страницы и прочитает значение скрытого поля — оно скрыто от глаз, но не из HTML.

Скрытое поле скрыто от глаз, но не из исходного кода страницы. Ключи и токены туда класть нельзя — никогда.

Источник заявки

Два способа передать UTM-метку

СпособКак настраиваетсяКогда подходит
Скрытое поле с именем меткиПоле с именем utm_source — Tilda сама подставит значение из адреса страницыНужна одна-две метки, всё видно в списке полей формы
Опция «Посылать Cookie»В настройках формы включается передача служебных данных целикомНужен весь набор меток и данные о переходе, без лишних полей в форме

Проверяется одинаково: открываем опубликованную страницу с ?utm_source=test в адресе, отправляем заявку и смотрим, приехало ли значение в раздел «Заявки».

Публикация

Четыре шага до живой страницы

01

Опубликовать

Кнопка «Опубликовать» в редакторе. До этого страница живёт только в черновике и по ссылке не открывается.

02

Открыть по адресу

Не в предпросмотре, а по настоящей ссылке — в отдельной вкладке и обязательно на телефоне.

03

Отправить заявку

Своими руками, с реальными данными. Смотрим, появилось ли сообщение об успехе.

04

Найти в «Заявках»

Раздел «Заявки» в настройках сайта. Проверяем, что приехали все поля и имена совпадают с моделью.

Пока заявка не найдена в списке, страница не готова. «Форма вроде отправилась» — это не проверка.

Готовность

Что должно быть сделано к уроку 5

01

Страница опубликована и открывается по ссылке с телефона.

02

Имена переменных совпадают с моделью данных из урока 2 — буква в букву.

03

Обязательные поля отмечены, чекбокс согласия на месте.

04

Тестовая заявка отправлена и найдена в разделе «Заявки».

05

Скрытое поле с источником заполняется — проверено с ?utm_source=test.

На уроке 5 мы подключим к этой форме webhook. Если имена полей не сойдутся с моделью, разбираться придётся уже там — дольше и больнее.

Мини-артефакт урока 4

Опубликованная страница с формой, которая принимает тестовую заявку

Вопросы для самопроверки

01

Почему проверка в браузере не заменяет проверку на сервере?

02

Что случится на уроке 5, если имя поля в форме не совпадёт с колонкой базы?

03

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

Made on
Tilda