Как отобразить 2 группы отображения в одном div в виде Zend? - PullRequest
1 голос
/ 04 февраля 2010

Как я могу отобразить более 1 группы отображения В РАЗДЕЛЕ?

Мне просто нужно показать визуальное разделение - но в том же разделе.

Есть ли способ показать более 1 группы отображения в 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?

Я искал и искал, и пока не нашел ничего полезного.

Ответы [ 2 ]

7 голосов
/ 26 марта 2010

Логические параметры openOnly и closeOnly для декоратора HtmlTag делают именно то, что вам нужно. Как вы можете понять, 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>
1 голос
/ 05 февраля 2010

Я работал над этим с JavaScript - он убедил меня, что, хотя Zend Form хорош для чего-то, он не всегда лучший вариант.иногда это просто больше боли, чем стоит.

...