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

AJAX Discussion :

Test ajax avec symfony4


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 8
    Points
    8
    Par défaut Test ajax avec symfony4
    Bonjour à tous,

    J'utilise symfony4 pour tester le nouveau framework et je voulais faire un petit peu d'ajax pour tester. Je veux juste faire de l'ajax, une fois que j'ai compris le principe je pourrais faire de vraie fonctionnalité
    Petite précision j'utilise le bundle fosJSROuting pour qu'il n'y ait pas de problème avec les générations d'url sous sf4.

    Le hic c'est que je n'arrive pas à passer de data de mon js en front à ma fonction PHP. Or si je n'arrive pas à passer des variables du js à php je n'irait pas loin.

    Je suis sur que le problème vient de la car l'erreur est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controller ;App\Controller\AjaxCalendarController::returnData()t; requires that you provide a value for the $dataReceive argument.
    côté php c'est classique
    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
     
        /**
        * @Route("/ajaxCalendarReturn", name="ajax_calendar_return")
        */
        public function returnData($dataReceive , Request $request)
        {
     
            if($request->isXmlHttpRequest())
           {
              $dataReceive;
            $number = mt_rand(0, 100);
     
            return new JsonResponse(array('numberAjax' => $number, "dataResponse" => $dataReceive));  
            }
     
        }
    en l'état me retourne l'erreur mais en mettant $dataReceive = false j'ai bien la reponse sous forme de json.

    Je ne comprends pas car côté js je fais lors d'un changement d'un champ texte un envoi d'une data en dur pour tester (qui devrait donc forcément être ok)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var test = 'tttt';
        $( "#from" ).change(function() {
            var request = $.post( "{{path('ajax_calendar_return')}}", {dataReceive: 'test' } );  => dataReceive n'est pas passé au php
     
            request.done(function( msg ) {
              alert( msg );
            });
     
            request.fail(function( jqXHR, textStatus ) {
              alert( "Request failed: " + textStatus );
            });
        });
    Je suis peut-être fatigué mais même une recherche google ne m'a pas permit de voir la faute que j'ai fais...

    Merci d'avance si quelqu'un à une idée

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    Finalement le probléme était bien côté symfony que AJax.

    J'ai mal fait le routing avec le bundle
    il falait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var request = $.post( Routing.generate('ajax_calendar_return', { dataReceive: 10 }) );
            //fonction en cas de succes
            request.done(function( msg ) {
                console.log(msg);
            });
            //fonction en cas d'echec de la requete ajax
            request.fail(function( jqXHR, textStatus ) {
              alert( "Request failed: " + textStatus );
            });
    et enfin côté php au niveau de la route il faut mettre l'option expose à true

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Route("/ajaxCalendarReturn/{dataReceive}",options={"expose"=true}, name="ajax_calendar_return")
    Tout est indiqué dans la doc => https://symfony.com/doc/master/bundl...dle/usage.html

    Erreur bête mais ça depanne certains...

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

Discussions similaires

  1. [STRUTS][AJAX]Quel framework AJAX avec Struts
    Par woodwai dans le forum Struts 1
    Réponses: 24
    Dernier message: 12/03/2009, 16h19
  2. [AJAX] Utilisation AJAX avec IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 42
    Dernier message: 01/07/2006, 20h33
  3. test unitaire avec python
    Par Abla23 dans le forum Zope
    Réponses: 4
    Dernier message: 30/06/2006, 13h04
  4. [AJAX] Peut-on faire de l'AJAX avec ASPX
    Par Kylen dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/06/2006, 12h34
  5. [Prototype] Ajax avec paramètres
    Par Tail dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 05/01/2006, 17h16

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