Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
je cherche a faire un formulaire de confirmation du genre :
<input type="submit" name="choix" value="Oui" /> <input type="submit" name="choix" value="Non" />
en utilisant Zend_Form.
Ca me donne quelque chose du genre :
$choix = new Zend_Form_Element_Submit("choix"); $choix->setValue("Oui"); $this->addElement($choix);
Mais je ne sais pas comment ajouter la deuxième valeur 'Non'.
Est ce possible ?
A chaque fois que je veux utiliser un des composants forme, c'est un peu la galère car je ne sais pas ou aller cherche ce genre d'information.
Hors ligne
oui, c'est bien 2 boutons que je veux.
Pas de problème pour les input radio :)
Hors ligne
bonjour,
Pour tes deux boutons tu peux faire
$choix = new Zend_Form_Element_Submit("choixOui"); $choix->setValue("Oui"); $this->addElement($choix); $choix = new Zend_Form_Element_Submit("choixNon"); $choix->setValue("Non"); $this->addElement($choix);
et dans ton controleur tu peux savoir quel bouton a été cliqué en faisant :
if (isset($_POST['choixOui'])) { echo "le bouton Oui a été cliqué"; }
Biensur si tu a mis la methode POST à ton formulaire sinon tu remplace POST par GET.
voilà j'espere que j'ai pu t'aider.
Hors ligne
Merci pour cette proposition.
Effectivement je ne vois pas d'autre solution.
Le Zend_Form ne semble pas permettre de faire un submit avec 2 boutons.
Hors ligne
Si mais c'est pas logique d'avoir le meme name avec 2+ valeurs pour un element qui n'est pas prévue pour
Sémantiquement parlant, le bouton radio, le select et la checkbox serai plus approprié mais là on sort du débat.
Hors ligne
ce n'est pas Zend qui impose ça mais HTTP
$choix = new Zend_Form_Element_Submit("submitButton"); $choix->setValue("Oui"); $this->addElement($choix); $choix = new Zend_Form_Element_Submit("submitButton"); $choix->setValue("Non"); $this->addElement($choix);
au passage il est préférable d'utiliser
$this->_requester->get('submitButton');
que les varriables POST GET et autres variable système le requester est justement là pour ça si vous voulez savoir comment est arrivé la valeur il y a des methode isPost isXmlHttpRequest etc.
le requesteur http peu alors être remplacé pour accepter d'autre mode comme par exemple le mail.
notez enfin qu'on peut donner le même nom à plusieurs champs de formulaire c'est particulièrement intéressant sur les bouton submit puisque un seul peut être activé cela permer avec la valeur de savoir lequel
dans mon exemple j'utilise submitButton et la valeur seule me permet de savoir quel bouton à été pressé.
c'est aussi intéressant sur les bouton radio
<input type="checkbox" name="check[]" value="1" id="ch1"><label for="ch1">Un</label> <input type="checkbox" name="check[]" value="dos" id="ch2"><label for="ch2">Deux</label> <input type="checkbox" name="check[]" value="autre" id="ch3"><label for="ch3">Trois</label>
sous php on récupère alors un tableau avec les valeur 1 et/ou 2 et/ou 3
print_r($this->_request->get('check')); array => { 0 => '1', 1 => 'autre' }
A+JYT
Hors ligne
Pages: 1