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