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 :

Vider un formulaire après validation [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 67
    Par défaut Vider un formulaire après validation
    Bonjour,

    J'ai une page avec un formulaire. Lorsque je le rempli et que je le "submit", si ça c'est bien passé, je souhaiterai que le formulaire ne réaffiche pas les valeurs entrées.

    Comment faire ?

    Merci d'avance !

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Et bien à l'affichage de la page, tu mets tous les champs à null ...

    Exemple pour un input:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type="Nom du champ" value="" name="Nom de l'élément">

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 67
    Par défaut
    mais non...

    Dans le twig, il n'y a pas d'input normalement, il y a {{ form_widget(form) }}

    A la limite peut être dans le controleur, il faudrait vider le $form

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 79
    Par défaut
    Je pense que tu dois rediriger ton formulaire dans le controleur apres validation avec par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     return $this->render('MyAppNameBundle:Entity:file.html.twig', array());

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Citation Envoyé par Elwood J. Blues Voir le message
    mais non...

    Dans le twig, il n'y a pas d'input normalement, il y a {{ form_widget(form) }}

    A la limite peut être dans le controleur, il faudrait vider le $form
    Merci de préciser Twig Mais j'aurais pu voir Symfony Ok.
    Remarques que je me disais que c un peu nul comme question

    Autre remarque: des input's, tu en auras toujours ...

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 67
    Par défaut
    J'ai trouvé une solution fonctionnelle, elle est peut être pas très jolie.
    Dans ma fonction :
    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
     
    public function ajouterAction()
    {
      $message='';
      $acteur = new Acteur();
      $form = $this->container->get('form.factory')->create(new ActeurForm(), $acteur);
     
      $request = $this->container->get('request');
     
      if ($request->getMethod() == 'POST') 
      {
        $form->bindRequest($request);
     
        if ($form->isValid()) 
        {
          $em = $this->container->get('doctrine')->getEntityManager();
          $em->persist($acteur);
          $em->flush();
          $message='Acteur ajouté avec succès !';
        }
      }
     
      return $this->container->get('templating')->renderResponse(
    'MyAppFilmothequeBundle:Acteur:ajouter.html.twig',
      array(
        'form' => $form->createView(),
        'message' => $message,
      ));
    }
    en fait je le transforme en :

    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
     
    public function ajouterAction()
    {
      $message='';
      $acteur = new Acteur();
      $form = $this->container->get('form.factory')->create(new ActeurForm(), $acteur);
     
      $request = $this->container->get('request');
     
      if ($request->getMethod() == 'POST') 
      {
        $form->bindRequest($request);
     
        if ($form->isValid()) 
        {
          $em = $this->container->get('doctrine')->getEntityManager();
          $em->persist($acteur);
          $em->flush();
          $message='Acteur ajouté avec succès !';
          $acteur = new Acteur();
          $form = $this->container->get('form.factory')->create(new ActeurForm(), $acteur);
        }
      }
     
      return $this->container->get('templating')->renderResponse(
    'MyAppFilmothequeBundle:Acteur:ajouter.html.twig',
      array(
        'form' => $form->createView(),
        'message' => $message,
      ));
    }

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    C'est ça, tu recréés ton form vide que tu repasses à la variable $form.

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

Discussions similaires

  1. vider les champs d'un formulaire après validation
    Par WomanPSG76 dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/08/2007, 12h25
  2. Vider les champs d'un formulaire après validation
    Par HwRZxLc4 dans le forum Langage
    Réponses: 15
    Dernier message: 21/03/2007, 11h29
  3. Rechargement du formulaire après validation ?
    Par elitost dans le forum Struts 1
    Réponses: 13
    Dernier message: 21/09/2006, 12h46
  4. Réponses: 1
    Dernier message: 04/06/2006, 00h35
  5. Réponses: 4
    Dernier message: 18/10/2005, 23h22

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