bonjour,
j'ai besoin de quelques éclaircissements concernant les formulaires en ajax.
j'ai suivie le tuto http://j-place.developpez.com/tutori...-symfony2/#LIV
la VUE
le CONTROLLEUR :
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 <form id="form_recherche" action="{{ path('myapp_acteur_rechercher') }}" method="post"> {{ form_widget(form) }} <input type="submit" value="Rechercher" /> </form> ... <script> $(".loading").hide(); $("#form_recherche").submit(function(){ $(".loading").show(); var motcle = $("#acteurrecherche_motcle").val(); var DATA = 'motcle=' + motcle; $.ajax({ type: "POST", url: "{{ path('myapp_acteur_rechercher')}}", data: DATA, cache: false, success: function(data){ $('#resultats_recherche').html(data); $(".loading").hide(); } }); return false; }); </script>
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
32
33
34
35
36
37 public function rechercherAction() { $request = $this->container->get('request'); if($request->isXmlHttpRequest()) { $motcle = ''; $motcle = $request->request->get('motcle'); $em = $this->container->get('doctrine')->getEntityManager(); if($motcle != '') { $qb = $em->createQueryBuilder(); $qb->select('a') ->from('MyAppFilmothequeBundle:Acteur', 'a') ->where("a.nom LIKE :motcle OR a.prenom LIKE :motcle") ->orderBy('a.nom', 'ASC') ->setParameter('motcle', '%'.$motcle.'%'); $query = $qb->getQuery(); $acteurs = $query->getResult(); } else { $acteurs = $em->getRepository('MyAppFilmothequeBundle:Acteur')->findAll(); } return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Acteur:liste.html.twig', array( 'acteurs' => $acteurs )); } else { return $this->listerAction(); } }
ma question est quel intérêt d'utiliser un form dans la vue puisque même au niveau sécurité le CRSF token n'est même pas pris en compte dans le controlleur(enfin il ne me semble pas sauf erreur)
dans ce cas, pourquoi au lieu du <form> ... </form> ne pas mettre un bouton qui lance la requête ajax ?
Partager