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 !
Version imprimable
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:<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: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:
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:
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.
Merci