2009-07-01 18 views
7

voglio presentare pulsanti di opzione in gruppi di prodotti logici:Raggruppamento pulsanti di opzione in Zend Framework

Broadband products: 
    (*) 2 Mbit 
    () 4 Mbit 

Voice products: 
    () Standard 
    () Total 

Bundles: 
    () 4 Mbit + Standard 
    () 4 Mbit + Total 

Tutti i pulsanti di opzione hanno lo stesso attributo name - si ottiene l'idea. Sembra che Zend Framework 1.8 non supporti il ​​raggruppamento di pulsanti di opzione in questo modo. c'è qualche soluzione a questo?

Aggiornamento. Giusto per chiarire, con conseguente codice dovrebbe essere un po 'in questo modo:

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 il codice esatto di formattazione. Solo gli elementi della forma contano.

+3

Sembra che potrebbe essere lo stesso problema. http://framework.zend.com/issues/browse/ZF-3541 Il segnalato propone una correzione nel suo post. –

+0

Stai utilizzando Zend_Form? – jason

+0

Sì, io uso Zend_Form. –

risposta

12

Sei corretto che ZF 1.8 non supporta raggruppamento di opzioni in questo modo. Si può facilmente vedere il codice all'interno di Zend_View_Helper_FormRadio e creare il proprio helper di visualizzazione che supporti un array multidimensionale (cioè i raggruppamenti selezionati). Ho dovuto fare questo già per un progetto, controllare l'esempio alla 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 risultante:

<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> 
+0

Grazie per avermi indicato nella giusta direzione. Avevo bisogno di avvolgere un div attorno a ciascun gruppo di pulsanti radio, ed ero in grado di realizzarlo in modo simile. – Chris