2010-08-21 2 views
4

Я использую Zend Framework и установил нормальную Zend-форму, и я хочу попытаться добиться того, что у вас есть кнопка (с некоторым javascript), которая добавляет больше, и она добавляет другое выпадающее меню, такое же как одна настройка в форме zend (клон этого).Zend Form multiselect array

в основном, когда нажимается кнопка добавляет еще один выберите поле, как так:

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

я могу сделать копию мульти выберите поле с другим именем и вставить его в DOM и поймать сообщение от контроллера вне формы Zend, но то, что мне было интересно, если есть правильный способ достичь этого, и иметь возможность проверять и заполнять дополнительные поля при редактировании текущих данных, хранящихся в db, если есть какие-либо дополнительные .. Любая помощь приветствуется, спасибо.

ответ

2

Ну помните, что в контроллере, если у вас есть что-то вроде:

$this->form = new Form_Someform(); 

Вы всегда можете сделать:

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

Непосредственно перед использованием IsValid() или заселить.

Так что, когда ваш кто-то представляет форму, при создании объекта формы вы можете проверить, были ли какие-либо элементы выбора созданы динамически, а затем создать соответствующие Zend_Elements и просто подтвердить это. Также, когда вы перезагружаете эту форму, вы просто создаете элементы в зависимости от того, что находится в вашей базе данных.

Вы также можете использовать конструктор форм для передачи в массиве selectboxes и затем создать там тоже. Это то, чем я занимаюсь.

Важно помнить, что у вас есть контроль над конструктором и объектом формы между его созданием и использованием функций populate() и isValid().

Надеюсь, это поможет.

+0

Да, на самом деле я пришел к такому же выводу. Я создал их динамически по мере необходимости внутри контроллера Спасибо за ваш ответ Изного! – snakeyyy

+0

:) Нет проблем, я думаю, что это правильный способ сделать это. – snakeyyy