Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je rencontre un ptit problème avec zend_form et les filtres:
Voilà le code :
$form = new Zend_Form(); $login = new Zend_Form_Element_Text('login'); $login->setRequired(true) ->addFilter('StringToLower') ->addValidator('Alnum'); $email = new Zend_Form_Element_Text('email'); $email->setRequired(true) ->addFilter('StringToLower') ->addValidator('EmailAddress') ->addErrorMessage($translator->_("emailAddressInvalid")); $passw1 = new Zend_Form_Element_Password('passw1'); $passw1->setRequired(true) ->addValidator('Alnum') ->addValidator('StringLength', false, array(8)); $form->addElements(array($login, $email, $passw1)); $form->setElementFilters(array('StringTrim','StripTags'));
Avec ceci pour le login ->addFilter('StringToLower') ne marche pas, par contre si je commente la ligne $form->setElementFilters(array('StringTrim','StripTags'));, ->addFilter('StringToLower') est effectué correctement.
Je n'arrive pas à effectuer de filtre général et individuel
Autre chose si j'inverse les 2 lignes plus haut comme ceci :
$form->setElementFilters(array('StringTrim','StripTags')); $form->addElements(array($login, $email, $passw1));
aucun filtre n'est effectué.
Merci
Dernière modification par alien7 (09-12-2008 19:21:00)
Hors ligne
attention, tu confonds les types de fonctions add* et set*
Lorsque tu appelles une fonction set* ca n'ajoute pas, mais ça remplace.
De plus, setElementFilters est un raccourci qui place des filtres sur des éléments. Si tu n'as pas enregistrés tes d'éléments, comment veux tu y ajouter des filtres
Hors ligne
Bah je vois pas comment faire, ce n'est pas possible d'effectuer de filtre général et individuel ?
Hors ligne
Hello,
alien7 a écrit:
Bah je vois pas comment faire, ce n'est pas possible d'effectuer de filtre général et individuel ?
D'abord le général et ensuite le particulier (pas l'inverse comme toi).
La fonction addElementFilters n'existe pas. Tu dois pouvoir étendre Zend_Form pour implémenter :
public function addElementFilters(array $filters) { foreach ($this->getElements() as $element) { $element->addFilters($filters); } return $this; }
A+
Dernière modification par mikaelkael (09-12-2008 17:35:44)
Hors ligne
Impec ca marche, merci mikaelkael
Pourquoi cette méthode en'existe pas dans Zend_Form ?
Dernière modification par alien7 (09-12-2008 19:20:30)
Hors ligne
Hello,
Bonne question
A+
Hors ligne
Pages: 1