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 :

probleme recupération json


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut probleme recupération json
    Bonjour, j'utilise JSON en ajax pour envoyer une du texte dans ma vue, du genre:

    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
     
    $("#form").submit(function(){
     
     
        $.ajax({
            url: $(this).attr('action'), // le nom du fichier indiqué dans le formulaire
            type: $(this).attr('method'), // la méthode indiquée dans le formulaire (get ou post)
            data: $(this).serialize(),
            dataType: 'json',
            success: function(json){
            if(json.name == 'loic') {
                            alert('Tout est bon');
                        } else {
                            alert('Erreur : ');
                        }
                    }
        });
        return false;
    });
    et voila le controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public function loginAction(Request $request)
        { 
            /** @var $session \Symfony\Component\HttpFoundation\Session\Session */
            $session = $request->getSession();
     
    if($session->get('template')=='one' ){
    $session->remove('template');
     
    //$response = new Response(json_encode($array));
    return new JsonResponse(array('name' => 'loic'));
    }
    et quand je regarde dans mon firebug j'ai bien mon tableau avec comme texte Loic à la clé name mais impossible que le success ce fait dans la fonction pour mettre mon message 'Tout es bon' en alerte
    Je me demande bien ce qu'il manque
    Merci les amis
    Images attachées Images attachées  

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    salut l'ami,

    affiche dans une alert le json pour voir ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    success: function(json){
       alert(json);
       alert(json.name);
    à+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut re
    J'ai rien dans le success je vois seulement le tableau json {'name':loic} dans mon firebug, enfin si c bien le json j'espére
    et je peux même pas faire une alerte quelquonque genre alert('coucou') a cause du dataType: 'json' qui bloque la fonction.

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    voilà comment je fais.
    c'est mieux d'encoder ton tableau dans le controlleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
               $.ajax({
                   type: "POST",
                   url: "{{ url('save_titre_ajaxrq') }}",
                   data: "code={{ moncode }}&data="+encodeURIComponent(texte),
                   dataType: "html",
                   success: function(msg){        
     		alert(  ?decode?(msg)   );  je ne sais plus comment on décode en javascript
                   }
               });

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    $response = new Response(json_encode( .......... ));	
                    $response->headers->set('Content-Type', 'application/json');


    et pour voir les erreurs ajax dans firebug, je regarde plutôt dans l'onglet Réseaux et je regarde la requête et la réponse de la trace.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut re
    Je vais analiser ton code mais comment explique tu ceci:

    http://chez-syl.fr/2012/01/envoyer-u...query-et-json/

    Merci l'ami

  6. #6
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    envoyer un formulaire ou des données en ajax, il y a des petites différences.

    quel est ton cas ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    je veux envoyé mes donnée du formulaire et en retour des données d'un tableau de mon controller en json, des message d'erreur, comme l'exemple du site que je t'ai mis dans les message précédent

  8. #8
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    voici une le code que j'utilise pour l'envois de formulaire en ajax et ça fonctionne parfaitement bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
              <form id="form_m"   ...
               ...
              </form>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
               $("#form_m").submit(function(e){
                   e.preventDefault(); // on empêche l'envoi du formulaire par le navigateur
                   $.ajax({
                       type:"POST",
                       data: $(this).serialize(),
                       url:"{{ url('fos_message_from_prod') }}",
                       cache: false,
                       success: function(msg){
    alert(...?...);
                       }
                   });
                   return false;
               });
    pour le retour je crois qu'il faut utiliser JSonReponse pour un array, à tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    use Symfony\Component\HttpFoundation\JsonResponse;
     
    ....
     
    $response = new JsonResponse( array('demo'=>$demo, 'production'=>$production) );	
    $response->headers->set('Content-Type', 'application/json');

    voilà l'ami !!!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    j'ai du mieu avec ton code j'ai indefined en message success

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut
    Salut, j'ai réussi a faire fonctionné mes scripts, l'erreur venait de mon controller.

    J'utilisé un controller (loginAction) d'un bundle FosUserBundle pour la gestion des utilisateurs de mon application, et l'action loginAction posé probléme.

    j'ai donc crée un nouvelle action ainsi qu'une nouvelle url dans la fonction ajax et le tour est joué, j'ai bien mes attributs json dans mes success de la fonction.

    Enfin, le but recherché de tout ca n'est pas abboutit mes milles merci pour tes conseille l'ami.

    A plus

Discussions similaires

  1. [MySQL] Probleme encodage JSON/PHP
    Par tomy29 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/03/2012, 09h36
  2. Réponses: 2
    Dernier message: 23/05/2011, 10h20
  3. Probleme recupération ComboBox
    Par chlock62 dans le forum NetBeans
    Réponses: 4
    Dernier message: 03/04/2010, 18h49
  4. plugin Uploadify, problem encode json (je suppose)
    Par tombabibel dans le forum jQuery
    Réponses: 1
    Dernier message: 11/03/2010, 18h06
  5. Probleme recupération TextBox d'un repeater
    Par oclone dans le forum ASP.NET
    Réponses: 5
    Dernier message: 23/02/2009, 20h25

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