Zend_Form: добавление элементов к переключателям - PullRequest
0 голосов
/ 02 августа 2010

Я пытаюсь добавить Zend_Form_Elements после переключателей в моей форме, но до сих пор я не смог этого сделать. Если бы кто-нибудь мог указать мне правильное направление, это было бы очень ценно. Форма должна быть предоставлена ​​как показано ниже:

(*) [____]%

( ) [____]€

( ) [___] for [___]

Ответы [ 3 ]

0 голосов
/ 02 августа 2010

Как насчет этого:

class My_RadioForm extends Zend_Form
{
    public function init()
    {
        $this->addElement('radio', 'myradio', array(
            'label' => 'Select an option below',
            'multiOptions' => array(
                'val1'  => 'Text 1',
                'val2'  => 'Text 2',
                'val3'  => 'Text 2',
            ),
        ));
    }

}

Для очень специфичного рендеринга @iznogood прав: нужно разбираться во всем, что касается декоратора.

0 голосов
/ 03 августа 2010

Вы можете использовать документаторы, если речь идет только о позиционировании входных тегов. Вы можете сделать это, переписав / изменив декоратор FormElements по умолчанию, например, добавив свойство стиля float: left к определенному элементу формы. Продолжая пример Дэвида:

 $this->addElement('radio', 'myradio', array(
        'label' => 'Select an option below',
        'multiOptions' => array(
            'val1'  => 'Text 1',
            'val2'  => 'Text 2',
            'val3'  => 'Text 2',
        ), 
        'decorators' =>
          array(
          'ViewHelper',
          'Errors',
          'Description',
          array('HtmlTag', array('tag' => 'dd', 'style' => 'float: left')),
          'Label'
        )
));

Существует также метод setDefaultDecorators (), который позволяет перезаписывать все элементы декораторов во всей форме.

Более продвинутое решение, если создавать составные элементы - http://weierophinney.net/matthew/archives/217-Creating-composite-elements.html - то есть пользовательский элемент формы, содержащий несколько входных тегов. Таким образом, у вас больше контроля над бизнес-логикой формы.

0 голосов
/ 02 августа 2010

Используйте форму декораторы и css для стилизации ввода по вашему желанию.

Вы должны использовать декоратор forn, чтобы переписать разметку для вашей формы. Но, честно говоря, это довольно сложная задача, и, возможно, лучшим выбором для вас является форма viewScript. Там очень легко реализовать и дать вам 100% контроль над HTML для формы. Посмотрите на

Пример: полная настройка с использованием ViewScript Decorator

В приведенном мной примере.

...