IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Validation d'un formulaire


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Validation d'un formulaire
    Bonjour à tous et merci pour votre site que je consulte régulièrement pour avancer dans ma maitrise du framework zend

    Et là j'ai un petit soucis que je ne comprends pas :

    J'ai établi un formulaire très simple avec un champ mail et deux boutons radios inscription et désinscription :

    Voici ma class NewsletterForm

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?
     
    class NewsletterForm extends Zend_Form 
    { 
        public function __construct($options = null) 
        { 
            parent::__construct($options);
     
            $mail = new Zend_Form_Element_Text('Mail');
            $mail->setLabel("Abonnez-vous à notre lettre d'information")
                 ->addValidator('NotEmpty')
    			 ->addValidator('EmailAddress')
    			 ->addFilter('StripTags')
    			 ->addFilter('StringTrim')
    			 ->addFilter('StringToLower')
    			 ->setAttrib('onFocus', 'this.value="";')
    			 ->setValue('Votre adresse mail')
    			 ->setRequired(true);
     
     
    		$inscription = new Zend_Form_Element_Radio('inscription');
    		$inscription->setLabel('')
    			->setSeparator(' ')
    			->addMultiOption('1', 'Inscription')
    			->addMultiOption('2', 'Desinscription')
    			->setValue('1');
     
            $submitNews = new Zend_Form_Element_Submit('submit');
            $submitNews->setLabel('OK');
     
    		$this->addElements(array($mail, $inscription, $submitNews));
     
    		$french = array(
    	        'emailAddressInvalid' => "'%value%' n'est pas une adresse mail valide selon le format adresse@domaine.",
    	        'emailAddressInvalidHostname' => "'%hostname%' n'est pas un domaine valide pour l'adresse mail '%value%'.",
    	        'emailAddressInvalidMxRecord' => "'%hostname%' n'accepte pas l'adresse mail '%value%'.",
    	        'emailAddressDotAtom' => "'%localPart%' ne respecte pas le format dot-atom.",
    	        'emailAddressQuotedString' => "'%localPart%' ne respecte pas le format quoted-string.",
    	        'emailAddressInvalidLocalPart' => "'%localPart%' n'est pas une adresse individuelle valide.",
    	        'isEmpty' => "Ce champ est vide : vous devez le compléter.",
    	        'stringEmpty' => "Ce champ est vide : vous devez le compléter.",
    	    );
     
            $translate = new Zend_Translate('array', $french, 'fr');
            $this->setTranslator($translate);
     
     
     
        } 
    }
    Je n'ai pas l'impression d'avoir fait d'erreur (mais je sais qu'il y en a une) mais je n'arrive pas à valider mon formulaire !!

    Après test quand j'enlève : ->setRequired(true); de mon objet $mail plus aucun test de validation n'est fait

    Quand je le laisse des adresses mail correctement saisies me donne une erreur

    Merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Pour info
    Pour information dans le tableau $french de traduction ce sont les clés 'isEmpty' et 'emailAddressInvalid' qui réagissent quand je saisie une adresse mail valide

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Tu dois mettre tes filtres avant tes valideurs. Sinon, une adresse valide dans un premier temps peut devenir invalide après filtrage. De même, mets setRequired comme premier valideur.
    Le StripTags me semble inutile puisque tu as un valideur mail, non ?
    Ca donnerait quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $mail->setLabel("Abonnez-vous à notre lettre d'information")
        ->setAttrib('onFocus', 'this.value="";')
        ->setValue('Votre adresse mail')
        ->addFilter('StringTrim')
        ->addFilter('StringToLower')
        ->setRequired(true)
        ->addValidator('EmailAddress');

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    Ok merci je teste ta solution et je te tiens au courant ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Bon ça marche pas ...
    Mais je pense que cela est du au fait que j'utilise ajax pour inscrire dans ma base de données. Je vais chercher de ce coté et je vous tiens au courant

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/04/2006, 09h42
  2. Javascript : Empecher la validation d'un formulaire
    Par otb82 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/01/2006, 09h46
  3. Ouvrir une popup lors de la validation d'un formulaire
    Par pod1978 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/11/2005, 15h47
  4. Vérification de validation d'un formulaire
    Par tom06440 dans le forum Langage
    Réponses: 8
    Dernier message: 21/09/2005, 14h29
  5. Réponses: 11
    Dernier message: 16/09/2004, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo