2010-08-21 47 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