Как сделать в селектбоксе метку радиокнопки в Zend Fw - PullRequest
0 голосов
/ 12 января 2012

Не моя идея, но мне нужен набор переключателей, где последним значением кнопки является поле выбора.Визуальное объяснение:

o Опция 1

o Опция 2

o | ___ SelectBox |

Как это будет выглядеть в HTML:

<input type="radio" name="radioSet">Opt1
</input>

<input type="radio" name="radioSet">Opt2
</input>

<input type="radio" name="radioSet"><!-- Opt 3 -->
<select>
<option value="a"> aaa</option>
<option value="b"> bbb</option>
</select>
</input>

Что я делал в ZF до сих пор:

$picker = new Zend_Form_Element_Select('selectBox', array(
    'multiOptions' => array('a'=>'aaa', 'b' =>'bbb'),
    'decorators' => array(
        array('Label', array('escape'=>false))
        )
    ));


$this->addElement(
'radio',
'radioSet',
array(
    'multioptions' => array(
            'x'=>'Opt1',
            'y'=>'Opt2',
            'z'=>$picker //'Dropdown picker'
            ),
    'label' => 'My Title:',
    'decorators' => array(
            'ViewHelper',
            'Errors',
            array('Description', array('escape' => false)),
            'Label',
            array('HtmlTag', array('tag'=>'div')),
    ),
)
);

Но это возвращает только 3 переключателя, а также метки «Opt1» и «Opt2», но ничего после третьегопереключатель.

Я ХОЧУ, чтобы он был похож на код HTML, показанный выше, но этот код ZF не возвращает его.У кого-нибудь есть идеи, как этого достичь?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Спасибо за ваши советы. Я довольно новичок в Zend, поэтому я проверил, как создать собственный помощник по оформлению представления, мне не удалось заставить его работать так, но это помогло мне в другой проблеме.

Я пришел к решению, что проще просто добавить поле выбора в качестве отдельного элемента и отформатировать его в нужном месте с помощью css.

Еще раз спасибо.

0 голосов
/ 13 января 2012

К сожалению, вам, вероятно, придется написать декоратор, чтобы заменить тег label на select .Глядя на код для Zend_Form_Element_Radio (), он специально добавляет в радио тег label .

...