如何模拟 Zend\Form 提交而不在 Zend Framework 2/3 中显示表单?
Posted
技术标签:
【中文标题】如何模拟 Zend\\Form 提交而不在 Zend Framework 2/3 中显示表单?【英文标题】:How to simulate a Zend\Form submit without to display the form in Zend Framework 2/3?如何模拟 Zend\Form 提交而不在 Zend Framework 2/3 中显示表单? 【发布时间】:2018-05-28 13:44:33 【问题描述】:我有一个复杂的嵌套(订单)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,其中所有字段都被隐藏,使用填充的表单 F1 中的值填充 F2,将呈现的 F2 表单交付给客户端,并添加自动提交的客户端 javascript现在在页面加载时填充 F2 表单。只是大声思考......
【讨论】:
以上是关于如何模拟 Zend\Form 提交而不在 Zend Framework 2/3 中显示表单?的主要内容,如果未能解决你的问题,请参考以下文章
Zend Form - 一页中的多个表单和(CSRF)令牌验证
如何使用 Zend Form Decorator 将所有输入和标签放入 div?