Как стилизовать и отформатировать Zend-форму? - PullRequest
0 голосов
/ 24 ноября 2011

Мне было интересно, как стилизовать Zend-форму:

// Pants
    $this->addElement('select', 'waistmin', array(
            'label' => 'Pants: ',
            'multiOptions' => array_merge(array(''=>'', 'Any'=>'Any'),array_combine(range(21, 48), range(21, 48)) ),
            'value' => 'Any'
    ));

    $this->addElement('select', 'waistmax', array(
            'label' => 'to: ',
            'multiOptions' => array_merge(array(''=>'', 'Any'=>'Any'),array_combine(range(21, 48), range(21, 48)) ),
            'value' => 'Any'
    ));

    // Bust & Chest
    $this->addElement('select', 'bustmin', array(
            'label' => 'Bust & Chest: ',
            'multiOptions' => array_merge(array(''=>'', 'Any'=>'Any'),array_combine(range(30, 50), range(30, 50)) ),
            'value' => 'Any'
    ));

    $this->addElement('select', 'bustmax', array(
            'label' => 'to: ',
            'multiOptions' => array_merge(array(''=>'', 'Any'=>'Any'),array_combine(range(30, 50), range(30, 50)) ),
            'value' => 'Any'
    ));

У меня есть эта форма в form.php, и я помещаю ее в мой файл вида, используя echo $this->form;

я знаю, что могу добавлять теги стилей и теги id, но то, что я хочу, расположите их лучше.

сейчас они идут один за другим:

Pants:
   <drip down>
to:
   <drip down>
Bust & Chest:
   <drip down>
to:
   <drip down>

я хочу сгруппироватьвместе в div или, может быть, в таблице:

Pants:               to:
   <drip down>           <drip down>

Bust & Chest:               to:
   <drip down>           <drip down>

если я открою html внутри формы, он не будет отображаться на моей странице.1017 *

, чем

Ответы [ 3 ]

1 голос
/ 24 ноября 2011

Если вы хотите иметь больше контроля над тем, как и где отображаются отдельные элементы формы, вы можете выводить отдельные элементы формы и оборачивать их в html по своему усмотрению.

См. Ответ здесь . Этот ответ о разбиении Zend-формы может помочь вам, а также покажет, как удалить декораторы из элемента select, чтобы он не был включен ни в один html, что будет хорошо работать с примером ниже.

Вместо echo $this->form; вы можете сделать что-то вроде следующего:

<div class="form-sel">
Pants: <?php echo $this->form->waistmin ?> to: <?php echo $this->form->waistmax ?>
</div>

<div class="form-sel">
Bust &amp; Chest: <?php echo $this->form->bustmin ?> to: <?php echo $this->form->bustmax ?>
</div>
0 голосов
/ 29 сентября 2014

Почему бы вам просто не сделать CSS для использования Zend Forms dl, dt и dd.Это позволит вам изменить их стиль

0 голосов
/ 24 ноября 2011

В документации Zend вы должны использовать декораторы для изменения разметки элементов формы, также попробуйте $ form-> render () insetad echo. http://framework.zend.com/manual/en/zend.form.standardDecorators.html

...