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 :

Ajax, route not found. [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut Ajax, route not found.
    Bonjour,

    Je suis en train de réaliser une application qui nécessite un peu d'Ajax. Je m'aide de ce tutoriel.

    Ma fonction ajax ne fonctionne pas, et j'ai pu, à l'aide de Firebug, observer l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    x-wf-1-1-1-1	306|[{"Type":"ERROR","File":"","Line":"","Label":"request"},"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for \"POST \/card\/%7B%7B%20path(%27CaCardBundleGetAddress%27)%20%7D%7D\" (uncaught exception) at C:\\wamp\\www\\sf2card\\app\\cache\\dev\\classes.php line 4533 [] []"]|
    ...
    Voici ma fonction :

    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
     
    ...
    $("#ca_cardbundle_cardtype_city").change(function() {
      //GET
      var param = $('#ca_cardbundle_cardtype_city option:selected').text();
     
      param = 'city=' + param;
      //REQUEST
      $.ajax({
        type: "POST",
        url: "{{ path('CaCardBundleGetAddress') }}",
        data: param,
        cache: false,
        statusCode: {
          404: function() {
            alert('page not found');
          }
        },
        success: function(param){
          $('#destination').html('hello' + param);
        //$("#ca_cardbundle_cardtype_address").append($("<option></option>").
        //  attr("value",1).
        //  text(param));
        }    
      });  
    });
    ...
    J'ai bien rajouté la route :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CaCardBundleGetAddress:
        pattern: /addresses
        defaults: {_controller: CaCardBundle:Address:addresses }
        requirements:
            _method: POST
    D'avance, merci de votre aide

    Bonne fin de journée

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    Le message est assez clair

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /card\/%7B%7B%20path(%27CaCardBundleGetAddress%27)%20%7D%7D\
    On voit bien que la partie path de ton code n'est pas du tout traduite en chemin mais utilisée telle quelle.

    Je pense que ton template contenant le code js que tu nous présente n'est pas du tout interprété par TWIG.

    vérifie bien que tu passe par un template twig sinon ca ne pourra pas marcher.

  3. #3
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Citation Envoyé par Tolriq Voir le message
    ...
    On voit bien que la partie path de ton code n'est pas du tout traduite en chemin mais utilisée telle quelle.

    Je pense que ton template contenant le code js que tu nous présente n'est pas du tout interprété par TWIG.
    ...
    C'est bien à cette conclusion que je suis arrivé. Maintenant j'avoue ne pas comprendre pourquoi.
    Ma fonction Ajax se trouve dans un fichier séparé (functions.js) que j'inclus dans mon template grâce à ceci :

    layout.html.twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            {% javascripts output='js/main.js' '../app/Ressources/public/js/*' '@CaCardBundle/Resources/public/js/*' debug=true %}
                <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script> 
                <script type="text/javascript" src="{{ asset_url }}"></script>          
            {% endjavascripts %}
    Et mon fichier function.js se trouve bien dans mon bundle, et est bien chargé au moment de l'exécution.

    Une idée ?

    Bonne journée et merchi !

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Ton fichier JS n'est pas géré par twig, tu ne peux donc pas utiliser {{ path }} ni toute autre fonction twig. Utilise http://symfony2bundles.org/FriendsOf...sRoutingBundle pour avoir accès à tes route depuis JS.

  5. #5
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Salut,

    Ahhh okay. Je vais regarder de ce coté là.

    Merci à vous.

  6. #6
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    En effet, dans le tuto, le script est au niveau du layout

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/07/2012, 14h21
  2. [AJAX] Ajax + struts + erreur not Found
    Par ammouna24 dans le forum AJAX
    Réponses: 1
    Dernier message: 25/05/2009, 15h39
  3. Attribute .... not found !?
    Par YanK dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/10/2003, 10h27
  4. TXMLModule.create - name = resource not found
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/03/2003, 10h54
  5. Component not found
    Par Pm dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 14h40

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