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

jQuery Discussion :

retour avec .getJSON


Sujet :

jQuery

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut retour avec .getJSON
    Bonjour,

    J'aimerais créer une petite API pour mon site, le but serait de permettre à l'utilisateur de, via des méthodes, d'accéder à des résultats de ma base de donnée.

    J'ai fait un petit test avec .getJSON() mais je n'arrive pas à récupérer les infos côté client, voici le code:

    Côté serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    		<script>
    			$(function()
    			{
    				$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id+"&jsoncallback=?", 
    					function(data)
    					{
    						alert('TEST !!!!');
    						var res = $.parseJSON(data);
    						alert(res.NbRes);
    						return (res.NbRes);
    					});
    			});
    		</script>

    L'alert ne se lance pas, pourtant sur firebugdans Resau->Reponse j'ai bien ma réponse avec ma page et le résultat en json dedans.

    Merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ben normal tu n'as pas un json bien formé en retour
    vu que tu fasi un echo avant de je ne sais pas quoi ???
    essaye
    vu que $test est un string json bien formé
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    En effet j'avais trouvé cette méthode sur un blog mais elle semble inutile.

    J'ai changé la méthode et je me suis permit d'éditer le post initial, je peux donner plus de code si l'erreur peut provenir d'ailleurs.

    Merci !

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Pourquoi fais tu un parseJSON sur un getJSON ?
    le retour data dans la fonction est deja un json non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    Oui je récupère bien des données encodé en JSON mais j'ai cru comprendre que parseJSON permettait de modéliser le résultat en objet.

    Car en effet dans mon résultat j'ai beaucoup de "déchets" (du html) et mon JSON se trouve au milieu de tout ça, une illustration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <html>
    //...
     { NbRes : 10 }
    //...
    parseJSON (enfin apparemment j'ai comprit de travers ?) me servirait à accéder à ce résultat côté client via une méthode "res.NbRes".

    Par ailleurs, le alert de TEST ne se fait pas non plus.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    SI tu fais un getJSON, ton serveur doit te retourner un stringJSON correcetement formatté et uniquement le string json !!

    parseJson n'est pas une fonction magique que va nettoyer le code et recupérer uniquement le JSON !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    Comment peut-on éviter de retourner tout le html ?

    voilà ce que j'ai côté serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $nb = 104;
    echo json_encode(array('nbRes' => $nb));
    ?>
    Je faisais ce traitement dans une view donc j'avais du code html autour mais j'ai résolu le problème et mon résultat est bien:
    et dans "JSON" sur firebug j'ai bien:
    Cependant je n'ai toujours pas d'alert qui se lance...

    Merci !

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Déja si tu as

    en php ...

    Je ne vois pas pourquoi tu aurais
    nbRes "10"
    dans la console firebug ...

    10 != 104

    Ensuite montre nous ton code ajax actuel ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    Erreur de frappe de ma part, il s'agissait d'un nouveau test, je retrouve bien 104...

    Côté serveur j'ai simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $nb = 104;
    echo json_encode(array('nbRes' => $nb));
    ?>
    Que je veux récupérer grâce à mon "jsoncallback" côté client:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script>
    			$(function()
    			{
    				$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id+"&jsoncallback=?", 
    					function(data)
    					{
    						alert('TEST !!!!');
    						var res = $.parseJSON(data);
    						alert(res.NbRes);
    						return (res.NbRes);
    					});
    			});
    		</script>

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    pourquoi tu le parses ????????????????????????????


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id+"&jsoncallback=?", 
    					function(data)
    					{
    						alert(data.NbRes);
    						});
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    J'ai oublié de l'enlever suite à ton explication, cependant j'ai toujours pas d'alert qui s'affiche !

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    et le ? à la fin de l'url ?? 'est quoi ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    ca me permet de récupérer le retour JSON, enfin c'est ce qui était expliqué sur le blog que j'ai vu et si j' l'enlève je ne vois plus mon résultat sous firebug.

    Tu as l'air assez surprit de la manière de faire, je me permets de t'envoyer le lien sur lequel j'ai vu ça:
    http://www.creatiq.fr/tutoriels/creer-votre-propre-api-77

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(function() {// AU chargement de la page .
    	$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id,
    //tu appelles  la page qui génère le json en lui passant les paramètres
      function(data){ // ici la fonction lancée sur le retour ajax
       alert('TEST !!!!');
       alert(res.NbRes);
      });
    });
    si cela ne fonctionne pas c'est que la page appelée ne retourne pas un string json .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    Et la fonction json_encode() de php n'est pas censé faire cela ?

    Je sais que je me repette mais dans fireBug j'ai pourtant bien un onglet "JSON" avec;

    avec le code côté serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
            $nb = 104;
            echo json_encode(array('nbRes' => $nb));
    ?>

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    A quoi te servent les paramètres que tu passes dans l'url ???

    Réduisons ton getJSON à sa plus simple expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $(function() {
    	$.getJSON("http://monsite/api.php",
               function(data){ 
                                 alert('TEST !!!!');
                                 });
    });
    as tu un alert avec ça ?

    attention à l'extension sur le fichier pointé !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    Ces arguments me servent car j'ai simplifié le code mais en réalité je fais appel à des méthodes d'un objet php côté serveur.

    En simplifiant le code de cette manière je n'ai toujours pas d'alert, et un résultat JSON dans firebug selon si j'ajoute ou non mon "jsoncallback", exactement la même chose en fait.

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    tu pointes bien un fichier avec une extension php ???

    pous les paramètre évites de les mettres dans l'url et utilises le second param de getJSON
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Par défaut
    ok pour les paramètres, oui je pointe vers le bon endroit, la preuve est que quand je modifie la valeur de nbRes côté serveur et que je remets mon jsoncallback j'ai bien la bonne valeur dans firebug côté client.

  20. #20
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    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
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
     
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
        <title>Nouvelle page 1</title>
    <script type='text/javascript'>
     $(function(){
    $.getJSON('test.php',{param:"coucou" }, function (data){alert(data.param)} )
    })
     </script>
    </head>
    <body>
    </body>
    </html>
    coté serveur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $sendback=$_GET['param'];
    echo json_encode(array("param"=>$sendback));
    ?>
    J'ai bien le coucou ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Débutant. fonction de retour avec $.getJSON
    Par iza21 dans le forum jQuery
    Réponses: 1
    Dernier message: 16/07/2010, 02h22
  2. [SSH2] Pas de retour avec ssh2_shell
    Par Leobaillard dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 10/02/2008, 03h42
  3. Probleme de retour avec les fonctions
    Par yorukaze dans le forum Tkinter
    Réponses: 9
    Dernier message: 04/02/2008, 09h49
  4. Gerer des codes retour avec BulK Insert
    Par Macfurp dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/11/2007, 18h58
  5. appel sous-formulaire et retour avec ecran normal
    Par pat1545 dans le forum Access
    Réponses: 1
    Dernier message: 31/07/2006, 20h18

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