Zend framework 以下代码的zend表单装饰器是什么?
装饰师应该如何将这两个元素并排放置。通常它呈现的是默认zend的“dl-dt-dd”结构。我需要在同一个dd中使用这两个元素,在dt中使用一个通用的标签Zend framework 以下代码的zend表单装饰器是什么?,zend-framework,decorator,Zend Framework,Decorator,装饰师应该如何将这两个元素并排放置。通常它呈现的是默认zend的“dl-dt-dd”结构。我需要在同一个dd中使用这两个元素,在dt中使用一个通用的标签 $card_expmonth = new Zend_Dojo_Form_Element_FilteringSelect('card_expmonth'); $card_expmonth->setLabel('Card Expiration') ->setMultiOptions(array(1=>'1','2','3'
$card_expmonth = new Zend_Dojo_Form_Element_FilteringSelect('card_expmonth');
$card_expmonth->setLabel('Card Expiration')
->setMultiOptions(array(1=>'1','2','3','4','5','6','7','8','9','10','11','12'))
->setAttrib('style','width:100px;')
->setRequired(true);
$card_expyear = new Zend_Dojo_Form_Element_FilteringSelect('card_expyear');
$card_expyear->setMultiOptions(array(2011=>'2011','2012','2013','2014','2015','2016','2017','2018','2019','2020','2021','2022','2023','2024','2025'))
->setAttrib('style','width:100px;')
->setRequired(true);
请有人帮帮我。我建议您在这种情况下不要使用装饰器:
$card_expmonth->setDecorators(array('ViewHelper'));
$card_expyear->setDecorators(array('ViewHelper'));
鉴于:
<form action="<?php echo $form->getAction() ?>"
method="<?php echo $form->getMethod() ?>"
enctype="<?php echo $form->getEnctype() ?>"
accept-charset="<?php echo $form->getAttrib('accept-charset') ?>"
id="<?php echo $form->getId() ?>">
<dl>
<dt><?php echo $form->card_expmonth->getLabel() ?></dt>
<dd>
<?php echo $form->card_expmonth ?>
<?php echo $form->card_expyear ?>
</dd>
</dl>
</form>
没有测试。如果不起作用,告诉我
也请阅读如果这可以通过装饰师来完成,那么这将是最好的。这里不可能吗?它将是DijitElement而不是ViewHelper。谢谢你给了我openOnly和closeOnly的概念。
$card_expmonth->setDecorators(array(
'ViewHelper',
array(array('dd' => 'HtmlTag'), array('tag' => 'dd', 'openOnly' => true)),
array('Label', array('tag' => 'dt')),
array(array('dl' => 'HtmlTag'), array('tag' => 'dl', 'openOnly' => true))
));
$card_expyear->setDecorators(array(
'ViewHelper',
array(array('dd' => 'HtmlTag'), array('tag' => 'dd', 'closeOnly' => true)),
array(array('dl' => 'HtmlTag'), array('tag' => 'dl', 'closeOnly' => true))
));