我正在使用 Zend Framework 并设置了一个普通的 Zend Form,我想要尝试实现的是有一个按钮(带有一些 javascript),上面写着“添加更多”,并且它添加了另一个与设置相同的下拉菜单以 zend 形式(它的克隆)。
基本上,当单击按钮时,它会添加另一个选择框,如下所示:
<select name="type[]"> ...</select>
我可以使用不同的名称复制多选框,并将其插入到 DOM 中,并从 Zend 表单之外的 Controller 捕获帖子,但我想知道是否有适当的方法来实现这一点,并且能够在编辑数据库中存储的当前数据时验证和填充额外字段(如果有任何额外字段)。感谢任何帮助,谢谢。
最佳答案
请记住,在您的 Controller 中,如果您有类似以下内容:
$this->form = new Form_Someform();
你总是可以这样做:
$this->form->addElement(etc...)
在使用 isValid() 或 populate 之前。
因此,在您的 Controller 中,当有人提交表单时,在创建表单对象时,您可以检查是否动态创建了任何选择,然后创建相应的 Zend_Elements 并对其进行验证。 此外,当您重新加载该表单时,您只需根据数据库中的内容创建元素。
您还可以使用表单构造函数传入选择框数组,然后也在那里创建。这就是我所做的。
要记住的重要一点是,您可以控制构造函数以及表单对象的创建以及 populate() 和 isValid() 函数的使用。
希望这有帮助。
关于zend-framework - Zend Form 多选数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538744/