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