2010-08-21 50 views
4

我使用Zend框架,并已经建立了正常的Zend的形式,我想尝试实现的是有一个按钮(带一些JavaScript),上面写着添加更多的,它增加了一个下拉菜单相同作为Zend形式的一个设置(它的一个克隆)。Zend的形式多选阵列

基本上,当按钮被点击它增加了像另一个选择框,以便:

<select name="type[]"> ...</select>

我可以做多选择框的副本用不同的名称,并在DOM插入,赶上从Zend表格之外的控制器发布,但我想知道是否有一个正确的方法来实现这一点,并能够验证和填充额外的领域时编辑当前数据存储在数据库中,如果有任何额外的..任何帮助非常感谢,谢谢。

回答

2

清楚地记得,在你的控制,如果你有这样的:

$this->form = new Form_Someform(); 

你总是可以做到:

$this->form->addElement(etc...) 

使用的isValid前右()或填充。因此,在您的控制器

当有人提交表单,创建窗体对象时,你可以检查任何选择都dynamicaly创建,然后创建相应的Zend_Elements,只是验证对抗。 此外,当您重新加载该表单时,您只需根据数据库中的内容创建元素。

你也可以使用窗体构造函数传入一个selectboxes数组,然后在那里创建。我就是做这个的。

重要的事情要记住的是,您可以控制构造函数和表单对象在创建和使用populate()和isValid()函数之间。

希望这会有所帮助。

+0

是的,其实我也得出了同样的结论。我根据需要动态创建它们在控制器内 感谢您的回复Iznogood! – snakeyyy 2010-08-23 20:30:03

+0

:)没有probs,我认为这是做到这一点的正确方法。 – snakeyyy 2010-08-23 20:33:07