如何设计和格式化zend表单?

时间:2011-11-23 20:52:27

标签: php zend-framework zend-form

我想知道如何设计一个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,它将无法在我的页面内呈现。

我可以采取什么方法的任何想法?

thans

3 个答案:

答案 0 :(得分:1)

如果您想要更好地控制单个表单元素的显示方式和位置,可以输出单个表单元素,并根据需要将它们包装在html中。

查看答案heresplitting up a zend form上的这个答案可以帮助你,并且它显示了如何从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>

答案 1 :(得分:0)

Аcordingzend文档你应该使用装饰器来改变你的表单元素的标记,也可以尝试$ form-&gt; render()insetad echo。 http://framework.zend.com/manual/en/zend.form.standardDecorators.html

答案 2 :(得分:0)

为什么不简单地为dl,dt和dd Zend Forms使用CSS。这将允许您修改其样式