Zend 框架中的单选按钮分组
Posted
技术标签:
【中文标题】Zend 框架中的单选按钮分组【英文标题】:Grouping radio buttons in Zend Framework 【发布时间】:2010-11-07 09:16:43 【问题描述】:我想在逻辑产品组中显示单选按钮:
Broadband products:
(*) 2 Mbit
( ) 4 Mbit
Voice products:
( ) Standard
( ) Total
Bundles:
( ) 4 Mbit + Standard
( ) 4 Mbit + Total
所有单选按钮都具有相同的name
属性 - 你明白了。 Zend Framework 1.8 似乎不支持以这种方式对单选按钮进行分组。有什么解决办法吗?
更新。澄清一下,生成的代码看起来应该是这样的:
Broadband products: <br/>
<input type="radio" name="product" value="1"/> 2 Mbit <br/>
<input type="radio" name="product" value="2"/> 4 Mbit <br/>
Voice products: <br/>
<input type="radio" name="product" value="3"/> Standard <br/>
<input type="radio" name="product" value="4"/> Total <br/>
Bundels: <br/>
<input type="radio" name="product" value="5"/> 4 Mbit + Standard <br/>
<input type="radio" name="product" value="6"/> 4 Mbit + Total <br/>
不要介意确切的格式代码。只有表单元素很重要。
【问题讨论】:
这听起来可能是同一个问题。 framework.zend.com/issues/browse/ZF-3541 报道者在他的帖子中提出了一个修复方案。 你在使用 Zend_Form 吗? 是的,我确实使用 Zend_Form。 【参考方案1】:看看 Zend_Form_Element_Radio
http://framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.radio
还有多复选框类,但我猜它只适用于复选框 http://framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.multiCheckbox
【讨论】:
这就是他正在使用的并且遇到了问题。【参考方案2】:ZF 1.8 不支持以这种方式分组选项是正确的。您可以轻松查看Zend_View_Helper_FormRadio
中的代码并创建您自己的支持多维数组(即选择分组)的视图助手。我已经为一个项目这样做了,查看pastebin.com的示例
php:
$form->addElement('radio', 'test', array(
'helper'=>'formMultiRadio',
'label'=>'Test Thing',
'multiOptions'=>array(
'Test'=>array('1'=>'1', '2'=>'2'),
'Test 2'=>array('3'=>'3', '4'=>'4'),
'Test 3'=>array('5'=>'5', '6'=>'6'),
),
));
生成的 HTML:
<dt id="test-label"><label for="test" class="optional">Test Thing</label></dt>
<dd id="test-element">
Test<br />
<label for="test-1"><input type="radio" name="test" id="test-1" value="1" />1</label><br />
<label for="test-2"><input type="radio" name="test" id="test-2" value="2" />2</label><br />
Test 2<br />
<label for="test-3"><input type="radio" name="test" id="test-3" value="3" />3</label><br />
<label for="test-4"><input type="radio" name="test" id="test-4" value="4" />4</label><br />
Test 3<br />
<label for="test-5"><input type="radio" name="test" id="test-5" value="5" />5</label><br />
<label for="test-6"><input type="radio" name="test" id="test-6" value="6" />6</label>
</dd>
【讨论】:
感谢您为我指明正确的方向。我需要在每组单选按钮周围包裹一个 div,并且能够以类似的方式完成它。以上是关于Zend 框架中的单选按钮分组的主要内容,如果未能解决你的问题,请参考以下文章