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

Symfony PHP Discussion :

Formulaire en plusieurs étapes


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Formulaire en plusieurs étapes
    Bonjour tous le monde,

    J'ai un formulaire (userForm) avec des dizaines de champs, et je le divisionne en 4 étapes.

    J'ai créer pour chaque étape une classe (avec ces propres validateurs et widgets) qui hérite de la class userFrom.

    Mon problème c'est que j'ai une methode save() dans la classe user qui permet d'enregistrer le mot de passe en md5 mais a chaque fois que je submit l'une des etapes le passe se change.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class user extends Baseuser {
     
        public function save(Doctrine_Connection $conn = null) {
     
            if ($this->getPassword()) {
                $this->setPassword(md5($this->getPassword()));
            }
            parent::save($conn);
        }
     
    }
    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Une validation unique et un système d'onglet géré en jquery ne pourrait-il pas résoudre le problème ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Non je peut pas le faire en jquery, je suis obliger pour faire un submit a la base de données pour chaque étape

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    bonjour,

    voici une méthode que j'ai utiliser chez moi dans un projet Sf

    j'ai quatre formulaire séparer , avec leurs validator

    a chaque fois lorsque l'utilisateur clique sur suivant si les champs sont valide je sauvegarde les données dans la session puis je lui redirige vers l'étape suivant

    dans l'interface N°5 j'ai une récapitulatif des données de 4 interfaces : si l'utilisateur confirme dans l'action du 5éme interface après la confirmation je créer les objet et je les sauvegarde(en faite j'ai des données de plusieurs objets dans les interfaces.)

    cela fonctionne parfaitement

  5. #5
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je pense que cette solution est meilleur que celle qui consiste à sauvegarder à chaque étape. Et si l'utilisateur interrompt la saisie au milieu du process, tu n'as pas un enregistrement partiellement traité dans la base.

    C'est la solution que j'aurais proposée, si je n'avais été devancé.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Points : 396
    Points
    396
    Par défaut
    Ayant eu cette problématique il y a quelques temps, je vous fais suivre les solutions que j'avais testées :

    1. http://tech.cibul.org/a-way-to-make-...-with-symfony/

    Méthode très pratique et très propre, c'est la première que j'ai testée.
    Marche bien, hormis dans certains cas "complexes" : formulaires imbriqués + relations hiérarchiques.

    Cependant, à tester en premier car si tu n'as pas de problème relatifs à ton schema, c'est la méthode de loin la plus maintenable !!

    2. http://blog.adryjanek.eu/2009/03/24/...e-form-wizard/

    Méthode qui implémente celle de belgacem. Personnellement je la trouve moins propre et plus lourde (surtout dans mon cas où j'avais 4 types d'inscription différente, avec un formulaire divisé en 3 sections => 12 classes de formulaires en tout pour l'inscription, au lieu de 4 avec la méthode 1.).

    Mais la méthode marche bien. Attention tout de même : elle passe par un objet stocké en session via simplement un ID. Si l'utilisateur va et vient sur le site, il peut y avoir des cas d'erreur à tester (je crois me souvenir que cette remarque est valable dans les 2 solutions).

    @Michel Rotta : Attention au fait que beaucoup de boîtes demandent qu'une validation de formulaire marche aussi bien avec que sans Javascript d'activé

  7. #7
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    @bilbonec: En fait, dans l'idée d'origine, il n'y a pas de validation en jquery, juste un passage d'un onglet à un autre.

    Si tu veux une validation par jquery, il est évident qu'il est indispensable de refaire les tests lorsque le formulaire est soumis, pour la simple raison que rien n'empêche un utilisateur malveillant d'envoyer un paquet POST trafiqué. Une bonne solution est niché dans le plugin : sfJqueryFormValidationPlugin. Une seul écriture des règles 'standard' dans symfony et la validation dans le formulaire, en Ajax est adapté.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/04/2014, 02h06
  2. [1.x] formulaire sur plusieurs étapes
    Par flora806 dans le forum Symfony
    Réponses: 1
    Dernier message: 05/02/2013, 08h39
  3. [1.x] Formulaire en plusieurs étapes dans le backend
    Par toufa_123 dans le forum Symfony
    Réponses: 10
    Dernier message: 14/03/2011, 10h00
  4. [1.x] Formulaire en plusieurs étapes
    Par belgacem.tlili dans le forum Symfony
    Réponses: 4
    Dernier message: 29/03/2010, 15h37
  5. [MySQL] Un petit exemple de formulaire en plusieurs étapes
    Par guismoman33 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/03/2008, 17h57

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