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


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

Я хотел создать веб-форму как многоступенчатую, на первой странице собирается почтовый индекс, а после нажатия на следующую страницу выполните вызов API для отправки почтового индекса и сохраните ответ от этого вызова, чтобы на второй странице Отправка отправляла через другой вызов API этот ответ данные плюс все значения формы.

Это Получение черновика данных в веб-форме hook_form_FORM_ID_alter() кажется ответом, но не совсем.

 1
Author: StevenPatz, 2018-01-12

1 answers

Вам следует написать пользовательский обработчик веб-форм, который добавляет возвращаемые данные API в $form_state, а затем изменяет элементы формы по мере необходимости. Есть несколько доступных сообщений в блоге о написании обработчиков веб-форм.

Вот как получить текущую страницу из $form_state.

/** @var \Drupal\webform\WebformSubmissionForm $form_object */
$form_object = $form_state->getFormObject();
$current_page = $form_state->get('current_page');
 2
Author: jrockowitz, 2018-01-19 16:27:32