Bonjour la communauté,
Depuis ma homepage, je tente de faire une simple requête AJAX afin de passer en variables de session Php la latitude et la longitude éventuellement récupérées par la géolocalisation réalisée par le navigateur. Ces données se retrouvent bien dans le formulaire de ma homepage car, sur le retour de ma requête AJAX, lorsque je fais
j'ai bien le popup
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 success: function(response) { console.log(response); alert('latitude = ' + $('#latitude').val() + ' and longitude = ' + $('#longitude').val()); }
Par contre, la récupération de ces données par mon controller ne s'effectue pas correctement.
Voici ma réquête AJAX :
Et ma fonction dans le controller :
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 $.post({ url: $('#ajaxRoute').val(), data: { latitude: $('#latitude').val(), longitude: $('#longitude').val() }, dataType: "json", success: function(response) { console.log(response); alert('latitude = ' + $('#latitude').val() + ' and longitude = ' + $('#longitude').val()); } });
La réponse Json me donne ce résultat :
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 /** * @Route("/user/geolocation/session", name="user.geolocation.session") */ public function ajaxAction(Request $request) { if($request->isXmlHttpRequest()) { $latitude = $request->request->get('latitude'); $longitude = $request->request->get('longitude'); $this->container->get('session')->set('latitude', $latitude); $this->container->get('session')->set('longitude', $longitude); $response = new JsonResponse(); $response->setData(array('latitude'=> $request->request->get('latitude'), 'longitude'=> $request->request->get('longitude'))); return $response; } else { $response = new JsonResponse(); $response->setData(array('error'=> 'error')); return $response; } }
Apparemment,n'a pas l'air de fonctionner comme je l'entends.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $request->request->get()
Quelqu'un aurait une idée?
Merci d'avance pour votre aide.
EDIT : je remarque que les contrôles "latitude" et "longitude" sont vides au moment du premier appel AJAX. Si je fais un refresh de la page, je récupère alors correctement le tout.
Partager