如何使选择框成为Zend Fw中单选按钮的标签

时间:2012-01-12 14:16:31

标签: zend-framework drop-down-menu radio-button zend-form

不是我的想法,但我需要一组单选按钮,其中最后一个按钮值是一个选择框。视觉解释:

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 :(得分:0)

不幸的是,你可能不得不写一个装饰器来用 select 替换标签标签。查看Zend_Form_Element_Radio()的代码,它专门将标签标记添加到无线电。

答案 1 :(得分:0)

感谢您的建议。我对Zend很新,所以我检查了如何制作一个自定义视图助手装饰器,我无法让它像这样工作,但它帮助我解决了另一个问题。

我找到了解决方案,之后将选择框添加为单个元素更容易,并使用css将其设置为所需位置。

再次感谢。