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 de formulaire


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 99
    Par défaut Validation de formulaire
    Bonjour à tous,

    je suis actuellement bloqué sur la création d'un formulaire. Je cherche à utiliser les possibilités de validation mais qqchose m'échappe.

    Dans ma classe "MonFormulaire" je créer l'ensemble des champs de mon formulaire et tous possède un validateur (souvent : ne doit pas être vide").

    Je sais que l'on doit utiliser "isValid" pour vérifier la validation de mon formulaire mais je n'ai aucune idée de où ???

    - Si je met isValid à la fin de ma classe, lorsque mon objet est créé il ne peut vérifier de suite sa validation ?
    - Si je met isValid dans ma page de réception de mon formulaire, c'est que je dois rediriger ensuite à nouveau vers le formulaire mais les messages d'erreurs ne pourront pas être utilisés...
    - Reste le Javascript mais je doute que ce soit ca !

    Je sais qu'il y a un point sur la validation qui m'a complètement échappé mais je ne voit pas lequel.

    Merci d'avance pour votre aide....


  2. #2
    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
    L'action de ton form doit être la même que celle qui permet de l'afficher.
    Par exemple, ton formulaire est rendu par monController/monform. Le formulaire pointe vers la même action.
    Après, dans ton controller, de 3 choses l'une :
    1) La requête n'est pas en POST => tu affiches le form vierge (ou avec les données récupérées si tu es en edit)
    2) La requête est en POST =>
    a) le formulaire est valide => tu enregistres les données et tu fais éventuellement une redirection.
    b) le formulaire est invalide => tu 'repeuples' les champs et tu réaffiches le formulaire.
    Exemple tout à fait basic :
    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
    public function monformAction() {
        // création de ton form
        $form = new monFormulaire();
     
        if ($this->_request->isPost()) {
            if ($form->isValid($this->_request->getPost()) {
                // ton form est valide
                // => enregistrement des données
                // => redirection éventuelle
            } else {
                // ton form est invalide
                // réinjecte les valeurs saisies par l'user
                $form->populate($this->_request->getPost());
                // nouvel affichage du formulaire
            }
        } else {
            // initialisation et 1er affichage du formulaire
        }
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 99
    Par défaut
    OK Merci je viens de comprendre la subtilité. Dans tous les exemple que j'avais trouvé, aucun ne précisait ce point.

    Encore MERCI,

  4. #4
    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
    Avec plaisir
    N'oublie pas le tag

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 99
    Par défaut
    Oui, encore merci pour tes réponses rapides et précises. Je n'avais pas oublié la balise "Résolu", je voulais juste vérifier l'application de ce que tu m'avais dit.

    Le seul "hic" qu'il me restait est que pour que ca marche il faut que le submit pointe vers le même formulaire.


  6. #6
    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
    C'est ultra simple : tu ne mets pas d'action pour ton form. Il pointera donc automatiquement vers la page en cours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

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