如何模拟Zend Form提交而不在Zend Framework 2/3中显示表单?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何模拟Zend Form提交而不在Zend Framework 2/3中显示表单?相关的知识,希望对你有一定的参考价值。

我有一个复杂的嵌套(订单)ZendForm,可以多次编辑。现在我想获取数据并稍后将其传递给新表单。 (这样我想实现一个简单的克隆机制。)

已经有效的是将请求数据转换为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);
}

好的。但它要求用户需要先调用编辑表单,编辑它(如果需要),然后将数据发送到服务器(通过提交表单)。由于目标是动态创建克隆,我需要一种方法来模拟这些步骤。

如何获取通常通过表单提交传递的数据,而无需真正提交?

答案

一种想法是创建一个新的表单F2,其中字段全部隐藏,使用填充表单F1中的值填充F2,将呈现的F2表单传递给客户端,并添加自动提交现在填充的客户端javascript页面加载时F2表格。只是大声思考......

以上是关于如何模拟Zend Form提交而不在Zend Framework 2/3中显示表单?的主要内容,如果未能解决你的问题,请参考以下文章

重定向后保留 Zend Form 对象

Zend Form - 一页中的多个表单和(CSRF)令牌验证

Zend_Form 占位符翻译

如何在一个 Zend_Form 中连续放置 2 个按钮

如何将 Zend_Dojo 表单元素动态添加到 zend_form?

如何使用装饰器将多个 div 或字段集添加到 zend_form?