使用Zend_Form将多个元素组添加到一个显示组中

时间:2011-07-02 12:26:27

标签: php zend-framework zend-form zend-decorators

我正在使用Zend_Form输出我的表单,我正在尝试将按钮元素分组,然后将它们添加到字段集中。

我所管理的最好的是:

<fieldset id="fieldset-group1">
    <div class="buttons">
        <button name="submit_form" id="submit_form" type="submit">Submit</button>
        <button name="cancel_form" id="cancel_form" type="submit">Cancel</button>
    </div>
</fieldset>
<fieldset id="fieldset-group2">
    <div class="buttons">
        <button name="reset_form" id="reset_form" type="submit">Reset</button>
        <button name="button_form" id="button_form" type="button">Button</button>
    </div>
</fieldset>

其中两个元素组位于两个单独的显示组中。我通过将DisplayGroup HtmlTag Decorator'tag'选项设置为'div来完成此操作。

我希望实现的目标是:

<fieldset id="fieldset-group1">
    <div class="buttons">
        <button name="submit_form" id="submit_form" type="submit">Submit</button>
        <button name="cancel_form" id="cancel_form" type="submit">Cancel</button>
    </div>

    <div class="buttons">
        <button name="reset_form" id="reset_form" type="submit">Reset</button>
        <button name="button_form" id="button_form" type="button">Button</button>
    </div>
</fieldset>

其中两个div位于一个显示组中。

我希望我可以使用HtmlTag装饰器可用的'openOnly'和'closeOnly'选项,但它们不适用于DisplayGroups。

除了扩展Zend_View_Helper_Fieldset以实现我想要的是更好的方法吗?

2 个答案:

答案 0 :(得分:5)

'decorators'=>array('FormElements',
                     array(array('divtag'=>'HtmlTag'),'options'=>array('tag'=>'div')),
                     array(array('fstag'=>'HtmlTag'),'options'=>array('tag'=>'fieldset','openOnly'=>true)),
                   )

openOnly / closeOnly也可以与DisplayGroups一起使用

答案 1 :(得分:0)

他们总是说你可以自己编写装饰器。你要做的不是扩展view_helper而是编写自己的装饰器。这里的装饰器不是fieldai afaik,而是FieldElements里面和fieldset使用的。这是FormElements装饰器,它不是设计用来处理你正在寻找的div。