Как смоделировать отправку 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 при загрузке страницы. Просто мысли вслух...

Другие вопросы по тегам