Bonjour à vous
Je test une classe de "validation de saisie" perso et j'ai un petit souci.
Le contrôle du titre du disque (Il doit etre = 'TOTO') marche mais
en cas d'echec aucun message apparait dans le formulaire .... Il y a juste un POINT
Est ce que ce n'est pas un conflit avec addValidator (..qui eux marchent correctement) ?
Merci encore pour votre aide
mes classes :
classe validate perso:
classe formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php require_once 'Zend/Validate/Abstract.php'; class Validate_NameMatch extends Zend_Validate_Abstract { const NAME_MISMATCH = 'nom titre accepté'; protected $_compare; public function __construct($compare) { $this->_compare = $compare; } protected $_messageTemplates = array( self::NAME_MISMATCH => 'Le nom du disque n est pas accepté' ); public function isValid($value) { $this->_setValue((string) $value); if ($value !== $this->_compare) { $this->_error(self::NAME_MISMATCH); return false; } return true; } } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?PHP class Application_Form_Album extends Zend_Form { public function init() { $this->setName('album'); $id = new Zend_Form_Element_Hidden('id'); $id->addFilter('Int'); $artiste = new Zend_Form_Element_Text("artiste", array('size' => 25)); $artiste->setLabel('Artiste') ->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty'); $titre = new Zend_Form_Element_Text("titre", array('size' => 25)); $titre->setLabel('Titre') ->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty'); $envoyer = new Zend_Form_Element_Submit('envoyer'); $envoyer->setAttrib('id', 'boutonenvoyer'); $this->addElements(array($id, $artiste, $titre, $envoyer)); } // Redefinition de la methode public function isValid($data) { $titre = $this->getElement('titre'); $titre->addValidator(new Validate_NameMatch('TOTO')); return parent::isValid($data); } } ?>
Partager