【问题标题】:How to display 2 display groups in the same div in a zend form?如何以zend形式在同一个div中显示2个显示组?
【发布时间】:2011-01-13 04:57:03
【问题描述】:

如何在一个 div 中显示多个显示组?

我只需要显示一个视觉分隔 - 但在同一个 div 内。

有没有办法在一个 div 中显示多个显示组?

例如:以zend形式实现如下:

  <div style="width: 100%;">     

       <div style="width: 50%; float: left; padding-left: 20px; padding-bottom: 25px;">
       <fieldset id="fieldset-homeAddressSettings" tag="fieldset" style="">
         <legend> Home address </legend>
        <!-- multiple elements follow -->
        </fieldset>
       </div>
      <div style="width: 50%; float: left; padding-left: 20px; padding-bottom: 25px;">
     <fieldset id="fieldset-officeAddressSettings" tag="fieldset" style="">
         <legend> Office address </legend>
        <!-- multiple elements follow -->
     </fieldset>  
       </div>
  </div>

如何在 Zend 表单中实现这一点?

我找了又找,至今没有找到任何有用的东西。

【问题讨论】:

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


    【解决方案1】:

    “HtmlTag”装饰器的“openOnly”和“closeOnly”布尔选项完全可以满足您的需要。如您所知, openOnly 的含义是它只生成一个没有结束标签的开始标签(即 ),反之亦然 closeOnly 属性(即

    Zend_Form PHP 代码:

    $form = new Zend_Form();
    
    // Form stuff here
    
    $form->addDisplayGroup(
        array(
            'homeAddressLine1',
            'homeAddressLine2',
            'homeCity',
            // etc
        ),
        'homeAddress',
        array(
            'legend' => 'Home Address'
            'disableDefaultDecorators' => true,
            'decorators' => array(
                'FormElements',
                'FieldSet',
                array('HtmlTag', array('tag' => 'div', 'class' => 'addresses', 'openOnly' => true))
            )
        )
    );
    
    $form->addDisplayGroup(
        array(
            'workAddressLine1',
            'workAddressLine2',
            'workCity',
            // etc
        ),
        'workAddress',
        array(
            'legend' => 'Work Address'
            'disableDefaultDecorators' => true,
            'decorators' => array(
                'FormElements',
                'FieldSet',
                array('HtmlTag', array('tag' => 'div', 'closeOnly' => true))
            )
        )
    );
    

    生成的 HTML:

    <form <!-- Your Zend_Form attributes here -->>
        <div class="addresses">
            <fieldset id="fieldset-homeAddress">
                <legend>Home Address</legend>
                <!-- Your Home Address elements/decorators here -->
            </fieldset>
            <fieldset id="fieldset-workAddress">
                <legend>Work Address</legend>
                <!-- Your Work Address elements/decorators here -->
            </fieldset>
        </div>
    </form>
    

    【讨论】:

      【解决方案2】:

      我用 JavaScript 解决了这个问题——它让我相信虽然 zend 形式对某些东西有好处,但它并不总是最好的选择。有时它只是比它的价值更痛苦。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多