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

Ext JS / Sencha Discussion :

JSonReader ne charge pas les données


Sujet :

Ext JS / Sencha

  1. #1
    Membre à l'essai
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut JSonReader ne charge pas les données
    Bonjour !

    C'est encore moi avec mes stupides problèmes >_<

    Cette fois c'est juste que je souhaite remplir ma grid avec des données que je récupère de ma base de données avec PHP.

    Mon grid store :
    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
    30
    31
    32
    33
    34
    35
     var gridStore = new Ext.data.Store({
            id: 'gridStore',
            proxy: new Ext.data.HttpProxy({
                      url: 'Ecom/model/ActionPlanDAO.php'
                  }),
            reader: new Ext.data.JsonReader({
              root: 'results',
              totalProperty: 'total',
              id: 'Action_Id'
            }, [
                // set up the fields mapping into the xml doc
                // The first needs mapping, the others are very basic
                {name: 'Action_Id', mapping: 'Action_Id'},
                {name: 'Metric_Cd'},
                {name: 'Metric_N'},
                {name: 'Metric_Active_Fg'},
                {name: 'Metric_Update_dt'},
                {name: 'Action_Status_N'},
                {name: 'Council_Chair_Id'},
                {name: 'Metric_Id'},
                {name: 'Action_Root_Cause'},
                {name: 'Action_Impact'},
                {name: 'Action_Target_dt'},
                {name: 'Action_Status_Cd'},
                {name: 'Action_Update_dt'},
                {name: 'Action_Comment1'},
                {name: 'Chair_Name'},
                {name: 'Chair_email'},
                {name: 'Comgroupdesc'},
                {name: 'Super_comgroup_Cd'},
                {name: 'Super_comgroupdesc'},
                {name: 'Comgroup'},
                {name: 'Action_Create_dt'}
            ])
        });
    Ma partie php (fichier ActionPlanDAO.php) :
    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
    $response = mysql_query($request) or die(mysql_error());
            $result = $response;
        $nbrows = mysql_num_rows($result);    
        if($nbrows>0){
            while($rec = mysql_fetch_array($result)){
                $arr[] = $rec;
            }
             if (version_compare(PHP_VERSION,"5.2","<")){    
                require_once("./JSON.php"); //if php<5.2 need JSON class
                $json = new Services_JSON();//instantiate new json object
                $jsonresult=$json->encode($arr);  //encode the data in json format
            } else {
                $jsonresult = json_encode($arr);  //encode the data in json format
            }
            echo '{"total":"'.$nbrows.'","results":'.$jsonresult.'}';
        } else {
            echo '{"total":"0", "results":""}';
        }
            return $response;
        }
    Sur ma page web, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {"total":"5","results":[{"0":"APT","Metric_Cd":"APT","1":"Average Payment Terms","Metric_N":"Average Payment Terms","2":"1","Metric_Active_Fg":"1","3":"2010-07-16","Metric_Update_dt":"2010-07-16","4":"Opened","Action_Status_N":"Opened","5":"2","Action_Id":"2","6":"7","Council_Chair_Id":"7","7":"1","Metric_Id":
    "1","8":"61 days","Action_Root_Cause":"61 days","9":"back to the target 59days","Action_Impact":"back to the target 59days","10":"2010-09-30","Action_Target_dt":"2010-09-30","11":"A1","Action_Status_Cd":"A1","12":null,"Action_Comment1":null,"13":"2010-07-30","Action_Update_dt":"2010-07-30","14":"2010-07-09","
    Action_Create_dt":"2010-07-09","15":"Marcel Felix","Chair_Name":"Marcel Felix","16":"b@fr.ibm.com","Chair_email":"b@fr.ibm.com","17":"IT PRODUCTS","Comgroupdesc":"IT PRODUCTS","18":"HDW","Super_comgroup_Cd":"HDW","19":"EQUIPMENT","Super_comgroupdesc":"EQUIPMENT","20":"H2","Comgroup":"H2"},..blabla]}
    Mais ma grid ne se remplie pas... Où est mon erreur ?

    Merci de votre aide une fois de plus!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 45
    Points
    45
    Par défaut
    Ton JSON est mal formaté.
    Dans ton PHP essaie d'utiliser mysql_fetch_assoc au lieu de mysql_fetch_array.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Ah oui effectivement c'est bien mieux au niveau de ce qu'il me ressort, mais ma grid n'est toujours pas remplie >_<

    Que je comprenne bien, l'écho sert à quoi ? c'est juste pour afficher le résultat ? Comment mon javascript il peut comprendre qu'il faut qu'il aille chercher telle et telle valeur ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 45
    Points
    45
    Par défaut
    le "echo" sert à printer une chaine de caractères ... ici ton JSON.
    Javascript va récupérer ce JSON qu'il peut interpréter directement comme un objet javascript. C'est tout l'intérêt d'utiliser du JSON en retour de tes requêtes AJAX.
    L'association entre le STORE de ton GRID et le JSON retourné par ton PHP est faite par le framework ExtJS en fonction des FIELDS que tu as déclaré dans ton JsonReader.

    Pour un reader déclaré comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    reader: new Ext.data.JsonReader({
              root: 'results',
              totalProperty: 'total',
              id: 'Action_Id'
            }, [
                {name: 'Action_Id', mapping: 'Action_Id'},
                {name: 'Metric_Cd'}
            ])
    il te faut un JSON comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {total:1000, results:[{Action_Id:42, Metric_Cd:"toto"}, {Action_Id:43, Metric_Cd:"titi"}]}

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    pour créer un JSON en php
    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
    $resultat=array(
      'total' => 2,
      'success'=>true,
      'results'=>array(
        array(
            'Action_Id'=>42,
            'Metric_Cd'=>'toto'
        ),
        array(
          'Action_Id'=>43,
          'Metric_Cd'=>'titi'
        )
      )
    );
     
    echo json_encode($resultat);
    A+JYT

  6. #6
    Membre à l'essai
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2009
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Merci de ton aide !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2007, 17h06
  2. ClientDataSet.Refresh ne rafraichit pas les données
    Par WebPac dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/04/2007, 14h32
  3. pb de syntaxe XML ne reconnais pas les données ..
    Par lolodelp dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 19/06/2006, 11h24
  4. y'a pas les données quand je veux imprimer
    Par StyleXP dans le forum Bases de données
    Réponses: 38
    Dernier message: 25/03/2006, 19h15

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