Для этого вам не нужна подчиненная форма, просто обычная форма с некоторыми специальными декораторами или удаленными декораторами.
<?php
class Your_Form_Example extends Zend_Form
{
public function init() {
// wrap the select tag in a <span> tag, hide label, errors, and description
$selectDecorators = array(
'ViewHelper',
array('HtmlTag', array('tag' => 'span'))
);
$this->addElement('select', 'danny', array(
'required' => true,
'multiOptions' => array('opt1', 'opt2'),
'decorators' => $selectDecorators // use the reduced decorators given above
));
}
}
Тогда вот скрипт вида, который визуализирует форму ...
<form method="<?php echo $form->getMethod() ?>" action="<?php echo $form->getAction() ?>">
<p>Danny had <?php echo $form->danny ?> apples and James had <?php echo $form->james ?> pears.</p>
<p>More stuff here...</p>
<?php echo $form->submit ?>
</form>
В результате должно получиться что-то вроде
<p>Danny had <span><select name="danny" id="danny"><option>opt1</option><option>opt2</option></select></span> apples and James had .....</p>
Чтобы сохранить правильность вывода формы, декораторы Errors, Description и Label удаляются и не будут отображаться.Поэтому, когда вы проверяете ошибки в форме, вам нужно будет отобразить их поверх формы или где-то еще, если у элементов select есть ошибки, поскольку они не будут отображаться вместе с элементами select.
Надеюсь, это поможет.