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 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 Formulaire en plusieurs étapes
    bonjour

    je vient de faire une formulaire sur 3 étapes et je suis basé sur un exemple dans ce lien
    http://www.iw2.fr/2009/08/28/symfony...e-en-plusieurs -etapes/

    cet exemple marche bien

    mais mon formulaire contient des formulaires imbriquées
    le problème que je n'arrive pas a utiliser le fonction unsetAllExcept avec les champs d'une formulaires imbriqués

    voila le fonction placé dans /lib/form/doctrine/BaseFormDoctrine.class.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function unsetAllExcept ($keepFields = array()) {
      foreach ($this as $key => $value)
        $baseFields[] = $key;
        $temp = array_diff($baseFields, $keepFields);
        foreach ($temp as $unsetField)
          unset($this[$unsetField]);
    }


    l'appel se fait par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->unsetAllExcept(array( 'nom', 'prenom', 'tel' ) );


    j'ai essayer de faire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->unsetAllExcept(array( 'nom', 'prenom', 'form2[email]' ) );


    mais cela ne marche pas

    avez vous une idée ???

  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
    Est-ce que dans la base de ton formulaire tu as un champ déclaré par un widget sous le nom de "form2[email]" si oui, cela devrait, peut-être marcher,

    Si non, tu as déjà perdu...

    Tu ne peux unset que des champs préalablement déclaré (et en général dans la base form).
    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 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
    Citation Envoyé par mimi68 Voir le message
    Est-ce que dans la base de ton formulaire tu as un champ déclaré par un widget sous le nom de "form2[email]" si oui, cela devrait, peut-être marcher,

    Si non, tu as déjà perdu...

    Tu ne peux unset que des champs préalablement déclaré (et en général dans la base form).
    salut mimi

    le champ email appartient a une form imbriqué (form2)

  4. #4
    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
    En fait, quant tu embed un formulaire, tu as deux formulaires à gérer.

    Donc pour faire un unset de email, il faut le faire dans le config du formulaire inclu.
    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 !

  5. #5
    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 Michel.

    en fait la solution est simple

    j'ai créer trois formulaires chaque dans une fichier séparer , j'ai aussi trois template et trois actions.
    lors du clic sur le bouton suivant je sauvegarde les données du formulaire dans la session et dans le dernier étape je récupère les données du trois pages ensuite je créer des objet avec ces données et je le sauvegarde dans la base

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 bihman dans le forum Symfony
    Réponses: 6
    Dernier message: 04/10/2010, 11h20
  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