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 !
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 !
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">
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
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());
J'ai trouvé une solution fonctionnelle, elle est peut être pas très jolie.
Dans ma fonction :
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 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, )); }
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, )); }
C'est ça, tu recréés ton form vide que tu repasses à la variable $form.
Partager