Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Voila mon pb :
J'ai deux champs dans un form un champ radio qui permet au user de préciser si le process s'effectue de manière mensuelle, hebdo ou quotidienne.
Un deuxième champ ( boutons radio comportant les jours de la semaine) qui n'est activé (via javascript) que si le user selectionne Hebdo sur le premier champ.
Mon soucis est le suivant, le deuxième champ peut etre vide car si le user selectionne Mensuel ou Quotidien il n'y pas lieu de sélectionner de jours. Hors avec le code si dessous je n'arrive pas à activer le test non vide si le user selectionne hebdo.
Pire la validation ne se déclanche que si mon champ contient l'instruction setRequired(true).
$pas_indice = new Zend_Form_Element_Radio('pas_indice'); $pas_indice->setLabel($this->translate->_('Sélectionnez le jour du début de pas : ')); $pas_indice->addMultiOption(1,$this->translate->_('Mensuel')) ->addMultiOption(2,$this->translate->_('Hebdomadaire')) ->addMultiOption(3,$this->translate->_('Quotidien')) ->addValidator('NotEmpty') ->setRequired(true) ->setAttrib('onClick','toggleme()') ->addPrefixPath('Decorators','Decorators','decorator') ->addDecorator('Empty'); $pas_indice_deb = new Zend_Form_Element_Radio('pas_indice_deb'); $pas_indice_deb->setLabel($this->translate->_('Sélectionnez le jour du début de pas : ')); $pas_indice_deb->addMultiOption(0,$this->translate->_('Lundi')) ->addMultiOption(1,$this->translate->_('Mardi')) ->addMultiOption(2,$this->translate->_('Mercredi')) ->addMultiOption(3,$this->translate->_('Jeudi')) ->addMultiOption(4,$this->translate->_('Vendredi')) ->addMultiOption(5,$this->translate->_('Samedi')) ->addMultiOption(6,$this->translate->_('Dimanche')) ->addPrefixPath('Validators','Validators','validate') ->addValidator('MonValidateurPasSemaine',false,array(array('pas_indice'))) //->addValidator('NotEmpty') //->setRequired(true) ->addPrefixPath('Decorators','Decorators','decorator') ->addDecorator('Empty');
Et mon validateur :
class Validators_MonValidateurPasSemaine extends Zend_Validate_Abstract { const NOT_MATCH = 'notMatch'; protected $_messageTemplates = array( self::NOT_MATCH => 'Veuillez sélectionner un jour de la semaine' ); protected $_fieldsToMatch = array(); public function __construct($_fieldsToMatch = array()) { $this->_fieldsToMatch= $_fieldsToMatch; } public function isValid($value, $context = null) { echo "aaaaaaaaaaaaaaah"; $value = (string) $value; $this->_setValue($value); if (($value=="")&&($context[$this->_fieldsToMatch[0]]=="2")){ $this->_error(self::NOT_MATCH); echo "ici"; return false; }else{ echo "la"; return true; } } }
Merci d'avance,
Hors ligne
up j'ai le même problème en ce moment merci
Hors ligne
Problème résolu grâce à ce post http://www.z-f.fr/forum/viewtopic.php?id=1446
Voir le dernier message ^^
Hors ligne