Каким будет декоратор формы Zend для следующего кода? - PullRequest
0 голосов
/ 29 августа 2011

Каким должен быть декоратор, чтобы расположить эти два элемента рядом. Обычно он отображает структуру "dl-dt-dd" по умолчанию в Zend. Мне нужны оба этих элемента в одном и том же дд с общей меткой в ​​дт.

$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);

Пожалуйста, кто-нибудь, помогите мне.

Ответы [ 2 ]

1 голос
/ 30 августа 2011
$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))
));

Не проверено. Скажи мне, если это не сработает.

Читайте также http://devzone.zend.com/article/3450

0 голосов
/ 29 августа 2011

Я предлагаю вам не использовать декораторы в этом случае:

$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>

Кроме того, вы должны позаботиться о выводе ошибок.

...