Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-03-2013 09:58:29

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Un seul bouton radio à la fois

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 :

Code:

[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

 

#2 19-03-2013 10:05:07

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Un seul bouton radio à la fois

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 wink

Hors ligne

 

#3 19-03-2013 16:20:10

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: Un seul bouton radio à la fois

Merci. ce serait un truc du genre ...
foreach($form_carriers->get('transporteur') as $element){
    echo($this->formRadio($element));
}
?

Hors ligne

 

#4 19-03-2013 17:26:36

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Un seul bouton radio à la fois

C'est ça smile

Hors ligne

 

#5 19-03-2013 17:42:16

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: Un seul bouton radio à la fois

Hum ça ne marche pas malheureusement, je vais chercher pour les aides de vues.

Hors ligne

 

#6 19-03-2013 23:27:08

aromatix
Membre
Lieu: paris - agadir
Date d'inscription: 12-03-2013
Messages: 20
Site web

Re: Un seul bouton radio à la fois

je croix que ce que tu veux faire c'est quelque chose comme ceci

Code:

<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

 

#7 20-03-2013 09:06:50

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Un seul bouton radio à la fois

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

 

#8 20-03-2013 12:08:53

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: Un seul bouton radio à la fois

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 smile

Dernière modification par amelie (20-03-2013 12:09:40)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages