Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
La question semble toute bête en faite mais comment testez-vous avec Zend_Validate dans un formulaire si un checkbox est coché?
Parce que j'ai essayé avec "NotEmpty" et "Digits" mais cela ne marche pas. Je veux dire par là que si la checkbox n'est pas coché cela ne me donne aucun message.
Voici mon formulaire :
<form method="post" action="#insc" name="insc" id="insc"> <fieldset> <legend>Infos :</legend> <p><label for="pseudo">Mon pseudo : </label><input type="text" size="20" name="pseudo" id="pseudo" value="" /></p> <p><label for="cgu" class="checkbox"><input type="checkbox" id="cgu" name="cgu" value="1" /> Checked</label></p> <p><input type="submit" name="submit" value="ok" /></p> </fieldset> </form>
Et voici mon code pour tester le formulaire :
if(!empty($_POST['submit'])) { $filtres = array( '*' => 'StringTrim', ); $validateurs = array ( 'pseudo' => array(array('Regex','(^[-_0-9a-zA-Z]{4,15}$)'),'messages' => array(Zend_Validate_Regex::NOT_MATCH => "Votre pseudo doit contenir entre 4 et 15 caractéres alphanumériques ou les caractères -, _.")), 'cgu' => array('digits','messages' => array( Zend_Validate_Digits::NOT_DIGITS => 'Cocher la case', Zend_Validate_Digits::STRING_EMPTY => 'Cocher la case car vide.' ) ) ); $input = new Zend_Filter_Input($filtres, $validateurs,$_POST); if ($input->isValid()) { //To be continued } else { //Récupére les erreurs foreach ($input->getMessages() as $item){ $erreur[] = $item[0];} } }
Quelqu'un a t-il une idée, svp ?
Hors ligne
isset
Hors ligne
yannux a écrit:
Si ta checkbox n'est pas coché, la variable $_POST['name_de_ta_checkbox'] n'est pas crée...
sauf si tu utilise le view helper $this->FormCheckbox() qui va automatiquement te créer un champ caché supplémentaire <input type="hidden" name="cgu" value="0" />
Hors ligne
As-tu lu cet article?
http://codeutopia.net/blog/2007/10/31/c … -problems/
Hors ligne
Pages: 1