[Form] formulaire en AJAX
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
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
|
<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> |
le CONTROLLEUR :
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 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 ?