I want to present radio buttons in logical products groups:
Broadband products:
(*) 2 Mbit
( ) 4 Mbit
Voice products:
( ) Standard
( ) Total
Bundles:
( ) 4 Mbit + Standard
( ) 4 Mbit + Total
All radio buttons have the same name
attribute - you get the idea. It seems that Zend Framework 1.8 does not support grouping radio buttons this way. Is there any solution to this?
Update. Just to clarify, resulting code should look somewhat this way:
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/>
Nevermind the exact formatting code. Only form elements matter.
You're correct that ZF 1.8 doesn't support grouping of options in this way. You could easily look at the code inside Zend_View_Helper_FormRadio
and create your own view helper that supports a multi-dimensional array (ie the select groupings). I had to do this already for a project, check out the example at 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'),
),
));
Resulting 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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With