Рейтинг:0

Как сохранить результат проверки веб-формы в многошаговом обработчике веб-форм ajax?

флаг dk

В моей форме AJAX пользователь должен выполнить проверку, так как ему нужен код для ввода остальной части формы (у нее 3 страницы или более). У меня есть обработчик для проверки этого, и этот же обработчик использует этот код для получения узла:

  // НА обработчике validate()
  $code_valid= $this->sessionManager->get('code_valid');
  
  если (пусто($code_valid))
  {
     $this->handlerProperty = $this->contentService->getContentByCodeAndCurrentNodeId($node_id, $name, $code);
     $this->sessionManager->set('code_valid', $this->handlerProperty);
  }


  // Класс репозитория
  общедоступная функция getContentByCodeAndCurrentNodeId (int $node_id, строка $name, строка $code)
  {
    вернуть $this->entityTypeManager->getStorage('узел')
      ->загрузить по свойствам([
        'тип' => 'ХХХХХ',
        'событие' => $node_id,
        'имя' => $имя,
        'код' => $код,
      ]);
  }

  общедоступная функция confirmForm (массив и $ форма, FormStateInterface $ form_state, WebformSubmissionInterface $ webform_submission) {
     //Если отправка прошла успешно, удаляем приватный магазин
     $this->sessionManager->delete('code_valid');
  }

Моя проблема в том, что нет способа $this->sessionManager->удалить('code_valid') если пользователь покидает форму. Поэтому я искал способ сохранить результат проверки, не прибегая к sessionManager/privatestoremanager.

Если вам нужно больше контекста, веб-форма настроена для использования с определенным типом контента (A). Он используется для создания/обновления/удаления другого типа контента (B). Между ними существует отношение «один ко многим», поэтому эта форма будет динамически создавать несколько B, в зависимости от отправленного содержимого формы — она может создать до 5 из B. Первый шаг — это проверка/аутентификация, чтобы иметь возможность использовать «настоящий» форме (следующие шаги после первого).

Заранее спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.