Как смоделировать отправку Zend\Form без отображения формы в Zend Framework 2/3?
У меня комплекс вложенный (заказ) Zend\Form
, который можно редактировать несколько раз. Теперь я хочу получить данные и передать их позже в новую форму. (Таким образом, я хочу реализовать простой механизм клонирования.)
Что уже работает, так это преобразование данных запроса в JSON
if ($request->isPost()) {
...
if(isset($request->getPost()->toArray()['store'])) {
$this->storeFormJson(json_encode($request->getPost()));
}
...
}
...
и передать его в пустой форме:
if ($this->params()->fromQuery('populate')) {
$formDataJson = $this->getFormDataJson();
$formDataArray = json_decode($formDataJson, true);
$parameters = new Parameters($formDataArray);
$request->setPost($parameters);
$request->setMethod(Request::METHOD_POST);
}
Хорошо. Но для этого необходимо, чтобы пользователь сначала вызвал форму редактирования, отредактировал ее (при необходимости) и отправил данные на сервер (отправив форму). Поскольку цель состоит в том, чтобы создавать клонов на лету, мне нужен способ имитировать эти шаги.
Как получить данные, которые обычно передаются через отправку формы, без реальной отправки?
1 ответ
Одна из идей состоит в том, чтобы создать новую форму F2, в которой все поля скрыты, заполнить F2 значениями из заполненной формы F1, доставить визуализированную форму F2 клиенту и добавить клиентский JavaScript-код, который автоматически передает заполненный в настоящее время заполненный формат. Форма F2 при загрузке страницы. Просто мысли вслух...