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

APIs Google Discussion :

Ajax, Google Chart Tools et Json


Sujet :

APIs Google

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : décembre 2009
    Messages : 42
    Points : 37
    Points
    37
    Par défaut Ajax, Google Chart Tools et Json
    Salut à tous

    J'utilise Google Chart Tools pour un projet mais j' rencontre un ptit soucis sur lequel je coinces depuis un bon moment et ça commence à sévèrement me taper sur les nerfs ...

    Je récupère mes infos en BDD en ajax, voilà ma petite 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
    28
    29
    // Load the Visualization API and the piechart package.
    google.load('visualization', '1.0', {'packages':['corechart']});
     
    // Set a callback to run when the Google Visualization API is loaded.
    google.setOnLoadCallback(stat_homme_femme);
     
    // Callback that creates and populates a data table,
    // instantiates the pie chart, passes in the data and
    // draws it.
    function stat_homme_femme()
    {
        var jsonData = $.ajax({
            url: "./include/traitement_stat.php",
            type: "POST",
            data: "h_f=1",
            dataType: 'json',
            async: false
        }).responseText;
     
        // Create our data table out of JSON data loaded from server.
          var data = new google.visualization.DataTable();
          data.addColumn('string', 'Topping');
          data.addColumn('number', 'Slices');
          data.addRows(jsonData);
     
          // Instantiate and draw our chart, passing in some options.
          var chart = new google.visualization.PieChart(document.getElementById('chart_hf'));
          chart.draw(data, {width: 400, height: 240});
    }

    la requête Ajax récupère les données après passage dans un json_encode dans ma fonction PHP

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab = array(
        array('Homme', 3),
        array('Femme', 3)
    );
    return json_encode($tab, JSON_NUMERIC_CHECK);

    ce qui me renvoi le résultat sous cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [["Homme",3],["Femme", 3]]
    Lorsque je recharge ma page, j'ai firebug qui hurle en me disant "Error: Argument given to addRows must be either a number or an array"

    Mais si je je remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.addRows(jsonData);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.addRows([["Homme",3],["Femme",3]]);
    Et bien le camembert s'affiche comme il faut ...

    Si quelqu'un peut me donner un ptit coup de patte ce serait vraiment cool !

    Merci d'avance

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    15 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 15 625
    Points : 39 649
    Points
    39 649
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       var jsonData = $.ajax({
            url: "./include/traitement_stat.php",
            type: "POST",
            data: "h_f=1",
            dataType: 'json',
            async: false
        }).responseText;
    pourquoi cette forme d'utilisation et non pas un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $.ajax({
      url: "./include/traitement_stat.php",
      data: "h_f=1",
      dataType: 'json',
      success : function( donnees){
          // faire ce qu'il y à faire avec les données
        };
    });

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2014, 18h04
  2. Générer un google chart via json
    Par marooh dans le forum APIs Google
    Réponses: 2
    Dernier message: 19/04/2013, 00h49
  3. Google WebMaster Tools
    Par sayef dans le forum Référencement
    Réponses: 2
    Dernier message: 26/09/2007, 02h23
  4. [AJAX] Google Web Toolkit, concurrent de DWR?
    Par azerr dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 26/06/2006, 15h45

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