Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'essaie depuis un moment de faire un formulaire basique de deux lignes, chaque ligne comportant un textbox et un checkbox. La solution que j'ai trouvée est de faire deux DisplayGroup, chacun générant un bloc <ul></ul> que je présenterai via une CSS.
Dans mon php, j'ai :
//Groupe 1 $acteur1 = $this->addElement('select', 'acteur1', array('label' => 'Acteur 1')); $acteur1 = $acteur1->getElement('acteur1')->setMultiOptions($this->_acteurs); $acteur1->setDecorators($decorators); $chb1 = $this->addElement('checkbox', 'chb1', array('label' => 'actif')); $chb1 = $this->getElement('chb1')->setDecorators($decoChb); $this->addDisplayGroup(array('acteur1', 'chb1'), 'grp1') ->setDisplayGroupDecorators(array( 'FormElements', array(array('ulwrap' => 'HtmlTag'), array('tag' => 'ul', 'id' => 'grp1')) )); //Groupe 2 $acteur2 = $this->addElement('select', 'acteur2', array('label' => 'Acteur 2')); $acteur2 = $acteur2->getElement('acteur2')->setMultiOptions($this->_acteurs); $acteur2->setDecorators($decorators); $chb2 = $this->addElement('checkbox', 'chb2', array('label' => 'actif')); $chb2 = $this->getElement('chb2')->setDecorators($decoChb); $this->addDisplayGroup(array('acteur2', 'chb2'), 'grp2') ->setDisplayGroupDecorators(array( 'FormElements', array(array('ulwrap' => 'HtmlTag'), array('tag' => 'ul', 'id' => 'grp2')) ));
Et ça donne comme sortie :
<form id="ouvrageForm" enctype="application/x-www-form-urlencoded" action="/Ouvrage/saisie/" method="post"> <div id="ouvrageForm"> <ul id="grp2"> <li><label for="acteur1" class="leftalign optional">Acteur 1</label> <select name="acteur1" id="acteur1"> <option value="" label=""></option> <option value="1" label="Corbeyran, Eric">Corbeyran, Eric</option> <option value="3" label="Defalli, Djilali">Defalli, Djilali</option> </select> </li> <li><label for="chb1" class="chb optional">actif</label> <input type="hidden" name="chb1" value="0" /><input type="checkbox" name="chb1" id="chb1" value="1" /> </li> </ul> <ul id="grp2"> <li><label for="acteur2" class="leftalign optional">Acteur 2</label> <select name="acteur2" id="acteur2"> <option value="" label=""></option> <option value="1" label="Corbeyran, Eric">Corbeyran, Eric</option> <option value="3" label="Defalli, Djilali">Defalli, Djilali</option> </select> </li> <li><label for="chb2" class="chb optional">actif</label> <input type="hidden" name="chb2" value="0" /><input type="checkbox" name="chb2" id="chb2" value="1" /> </li> </ul> </div> </form>
Le problème est que les id de mes deux bloc <ul> sont grp2, et non grp1 et grp2.
1/ La solution que j'ai choisie est-elle correcte ?
2/ Si oui, j'ai dû faire quelque chose de travers
3/ Est-ce normal que des champs hidden se rajoutent ?
Merci pour vos réponses, je commence à m'arracher les cheveux.
Hors ligne