IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Récupérer des données envoyées en AJAX dans le controller [4.x]


Sujet :

Symfony PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut Récupérer des données envoyées en AJAX dans le controller
    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

    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());
     
                                            }
    j'ai bien le popup

    Nom : Capture.JPG
Affichages : 2825
Taille : 14,4 Ko

    Par contre, la récupération de ces données par mon controller ne s'effectue pas correctement.

    Voici ma réquête AJAX :

    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());
     
                                            }
     
      });
    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
    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;
     
            }
     
        }
    La réponse Json me donne ce résultat :

    Nom : Capture.JPG
Affichages : 2789
Taille : 11,5 Ko

    Apparemment,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $request->request->get()
    n'a pas l'air de fonctionner comme je l'entends.

    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.
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/09/2018, 12h47
  2. [1.x] Récupérer des données d'une bdd dans une liste déroulante
    Par bMallo dans le forum Symfony
    Réponses: 4
    Dernier message: 02/08/2012, 10h48
  3. Réponses: 3
    Dernier message: 18/07/2012, 23h44
  4. Récupérer des données d'une feuille dans une autre
    Par pedroo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2009, 16h58
  5. Réponses: 3
    Dernier message: 01/09/2008, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo