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 :

Retour contenu Ajax


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut Retour contenu Ajax
    Bonjour,

    C'est la première fois que j'utilise Symfony pour un projet, je suis plutôt habitué à Zend et à ses mécanismes, c'est pour cela que je galère un peu.

    Ce que je cherche à faire est tout bête, en validant un formulaire, faire appel à un controlleur via une requête ajax, puis ensuite pouvoir mettre une partie de la vue à jour.

    Mon problème :
    Je n'arrive à récupérer correctement la réponse à la requête Ajax.
    En gros ce que je récupère dans "data" c'est ma page html complète et je ne comprend pas pourquoi, j'ai également testé avec des exemples extrêmement simple :

    Ajax (avec jQuery) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        $("#projectForm").submit(function(){ 
        $.ajax({
            type: "POST",
            url: "{{ path('ARprojects_addProject')}}",
            data: 'name=' + $("#newproject_nom").val(),
            datatype: 'json',
            success: function(data){
                //ici je fais un alert juste pour vérifier ce que j'ai récupéré, et en fait je récupère le code html de la vue entière Oo
                alert(data);
            }
        });    
        return false;
    });

    Controlleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public function statusAction (REQUEST $request)
        {
            if($request->isXmlHttpRequest())
            {
                $response = new Response(json_encode(array('var' => 'test')));
     
                $response->headers->set('Content-Type', 'application/json');
     
                return $response;
            }else {
                return $this->indexAction();
            }
        }
    J'ai remarqué que :
    url: "{{ path('ARprojects_addProject')}}",

    me donne une url du style :
    http://localhost/ar27005/symfony/web...s%27)%20%7D%7D


    Donc j'ai l'impression que la fonction path n'est pas interprétée par twig.

    Merci à l'avance pour votre aide ! =o

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,

    je n'avais jamais vu cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public function statusAction (REQUEST $request)
    pour accéder à l'objet request on fait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function statusAction (){
    $request=$this->container->get('request');
    ...
    }
    Quel est la réponse renvoyé: celle de indexAction ou une page Exception de Symfony ?

    tu peux débugger ton controller de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function statusAction (){
    $request=$this->container->get('request');
    if($request->isXmlHttpRequest(){
    $this->container->get('logger')->info('C UNE REQUETE AJAX');
    }else{
    $this->container->get('logger')->info('PAS UNE REQUETE AJAX');
    }
    }
    puis en consultant les logs dans le profiler
    (onglet search, valider la recherche, la liste des dernières requetes traités par symfony s'affiche, choisir la dernière et consulte l'onglet Logs pour voir tes message).

    PS : utilise la balise code lorsque tu poste un message

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut
    Je viens de changer mon post, en fait le problème vient du fait que je n'atteint même pas l'action du controlleur...
    La fonction Path n'est pas interprétée, c'est comme si on m'était une url vide, ça récupère la page html courante.

    Merci pour ta réponse détaillée en tous cas.

  4. #4
    Invité de passage
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Par défaut Symfony
    slt Je ss entrain d'apprendre la programmation symfony j'ai eu un problème après son installation car lors le lancement du lien localhost:8080/index.php sa m'affiche le code php écrit dans le fichier index.php De l'aide Svp!

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 81
    Par défaut
    Si tu as ton javascript dans un fichier à part, c'est normal que la fonction "path" ne marche pas.

    Pour utiliser les routes Symfony 2 en javascript, tu devrais utiliser le bundle FOSJsRoutingBundle comme expliqué dans la doc symfony 2.

Discussions similaires

  1. Appel de thickbox dans un contenu ajax
    Par fox1 dans le forum jQuery
    Réponses: 7
    Dernier message: 02/12/2009, 16h40
  2. Réponses: 2
    Dernier message: 05/04/2009, 15h41
  3. [AJAX] interface boucle retour fonction Ajax dans code Php
    Par sami117 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2009, 19h41
  4. [AJAX] Le retour d'AJAX n'est pas "actif"
    Par DrDam dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 08/12/2008, 14h29
  5. csshover.htc et contenu ajax
    Par mal1kom1sap1 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/06/2007, 11h18

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