Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Je display dans mon code un formaulaire avec des boutons radio. Chaque bouton radio doit etre placé dans la ligne d'un input.
J'ai donc crée une classe carrierForm qui crée ce formulaire :
[lang=php]<?php namespace Instapix\Form; use Zend\Form\Form; class CarrierForm extends Form { public function __construct($values = null) { parent::__construct('carrier'); $this->setAttribute('method', 'post'); if(!empty($values)){ $this->add(array( 'type' => 'Zend\Form\Element\Radio', 'name' => "transporteur", 'options' => array( 'value_options' => $values ), 'attributes' => array( //'value' => $options_num[0], 'class' => 'custom' ) )); } } }
Sauf que sur mon formulaire je voudrais une commande qui va récupérer un input radio à la fois, et nons pas tous en un seul coup, comme le fait $this->formRadio() ...
Avez-vous des idées ?
Merci
Dernière modification par amelie (19-03-2013 09:59:24)
Hors ligne
Salut Amélie, même remarque que la dernière fois c'est pas très très clair mais je pense que j'ai compris.
Une des solutions que tu peux adopter c'est dans ta vue lorsque tu vas récupérer l'élément qui a pour nom transporteur de faire un foreach dessus. Normalement ça devrait boucler sur les boutons radio et tu les affiches avec $this->formRadio() comme avant. Je suis pas certain que ça fonctionne mais tu peux tester.
Sinon la deuxième solution c'est de faire ta propre aide de vue
Hors ligne
C'est ça
Hors ligne
je croix que ce que tu veux faire c'est quelque chose comme ceci
<label> <?php echo $form->get('bouttonRadio')->getLabel() ?> <input class="bob" type="radio" name="<?php echo $form->get('bouttonRadio')->getName() ?>" value="<?php echo $form->get('bouttonRadio')->getValue() ?>" /> </label>
mais en récupérant les différentes valeurs une à une
j'ai pas encore eut affaire à ton type de besoin.
essaie les methodes suivantes (que j'ai pas téstés) : (elles sont héritées de multicheckbox)
getValueOptions(), getValueOptionsValues()
tu pourrais boucler sur le résultat de getValueOptionsValues() pour afficher tes élément comme ceci
// $name = $form->get('radioButton')->getName() ;
// valeurs = $form->get('radioButton')->getValueOptionsValues();
// boucle : foreach( $valeurs as $valeur )
<input class="bob" type="radio"
name="<?php echo $name ?>"
value="<?php echo $valeur ?>"
/>
// fin de boucle
enfin c'est une bricole que j'ai testée !!!
http://zf2-api.richardjh.org/class-Zend … Radio.html // ça peut t'aider
Hors ligne
Plop, sinon tu peux aussi regarder du côté des collections pour faire des collections de radio button et à ce moment là le foreach dont je t'ai parlé précédemment fonctionnera. Après à voir si les collections fonctionnent avec les radios button mais il n'y a pas de raison.
Hors ligne
Ola,
Merci pour vos réponses.
En fin de compte j'ai penché pour un ViewHelper personnalisé, qui surcharge MultiCheckbox. ça m'a permis de m'inspirer de ce que j'ai fait pour satisfaire un autre besoin. Thanks
Dernière modification par amelie (20-03-2013 12:09:40)
Hors ligne