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 :

Associer un jsonArray à un store et l'afficher dans une gride Ext Js


Sujet :

Ext JS / Sencha

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut Associer un jsonArray à un store et l'afficher dans une gride Ext Js
    Comment je peux récupérer l'array json renvoyé par ma servlet dans une requête ajax afin de le mettre dans une gride extjs ?
    Remarque:Mon application me renvoit toujours une grid vide!
    C'est ma requête ajax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Ext.Ajax.request({
            url: 'url',
            method:'POST',
            success: function ( result, request ) {
             Ext.MessageBox.alert('Success', 'Data return from the server: '+                 result.responseText);
            myData =Ext.JSON.decode(result.responseText);
            console.log(myData);
            store.loadData(myData);
            },
            failure: function ( result, request) {  	
            Ext.MessageBox.alert('Failed', result.responseText); 
            }
    J'ai pas pu récupérer les données (array json) renvoyées de ma servlet, grid toujours vide!
    Aidez moi s'il vous plaît c'est urgent!

  2. #2
    Membre éclairé
    Avatar de abraxis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 439
    Par défaut
    Bonsoir,

    Si tu utilise FireFox comme navigateur je te conseil d'installer Firebug qui te permet de voir les réponse venant du serveur et ainsi tu pourra vérifier les données envoyer au serveur mais surtout voir les données que ta servlet te renvoie.

    Si tu vois une réponse pourrais tu poster la réponse au format JSON ?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Je reçois la réponse au format JSON seulement si j'exécute ma servlet mais si j'exécute tout le programme je ne reçois aucune réponse de la part de ma servlet!
    Aidez moi s'il vous plaît c'est très urgent!

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    L'erreur qui s'affiche avec firebug:
    Ext.Error: You're trying to decode an invalid JSON String

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben... ça semble quand même explicite !
    Ton format JSON n'est pas valide...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Oui justement!Mais je ne sais pas comment réglé ce problème !!

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ca tombe bien, nous non plus on ne peut pas le savoir vu que tu n'indiques pas comment est généré le JSON que tu reçois !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Je m'excuse, vous avez raison !

    Voila le code de ma servlet :

    Code java : 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
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
          {
           response.setContentType("application/json");
         System.out.println("Right!!You are in servlet now !!!!! ");
        PrintWriter out = response.getWriter();
        // Output stream to STDOUT
        JSONObject myObject = new JSONObject();
        myObject.put("name","xx");
        myObject.put("id","123");
        System.out.println(myObject);
       JSONObject myRecord = new JSONObject();
        myRecord.put("name","yy");
        myRecord.put("id","12");
        System.out.println(myRecord);
        JSONArray myRecords = new JSONArray();
        myRecords.add(myObject);
        myRecords.add(myRecord);
        System.out.println(myRecords);
        }

    Et en exécutant la servlet toute seule sous Eclipse la réponse que je reçois est :

    Right!!You are in servlet now !!!!!
    {"name":"xx","id":"123"}
    {"name":"yy","id":"12"}
    [{"name":"xx","id":"123"},{"name":"yy","id":"12"}]
    Mais en exécutant l'application ça m'indique l'erreur que je vous ai déjà décrit et la grid vide !

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Effectivement, ta réponse n'est pas du JSON conforme !
    Déjà, parce que la première chose que tu envoies est un texte
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Right!!You are in servlet now !!!!! ");
    Donc ta réponse ne peut plus, à cause de cela, être du JSON.

    Ensuite, le reste de ton code affiche des portions d'objets, mais pas un format JSON dont la syntaxe est assez stricte.

    Je ne connais pas Java, mais je pense qu'il doit y avoir des méthodes permettant nativement de créer un véritable format JSON.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre éclairé
    Avatar de abraxis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 439
    Par défaut
    Seule cette ligne
    [{"name":"xx","id":"123"},{"name":"yy","id":"12"}]
    est au format JSON.
    Supprime tes lignes de
    System.out.println();
    .

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Non, les deux lignes précédentes prises individuellement sont aussi des formats JSON corrects, sauf que trois JSON corrects à la suite l'un de l'autre ne forment pas un ensemble JSON correct.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre éclairé
    Avatar de abraxis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 439
    Par défaut
    Oui en effet les deux autres lignes sont valident, je voulais juste parler du JSON qu'elle voulait utiliser dans le grid.

  13. #13
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 7
    Par défaut
    Et ça différent? c'est à dire ce json et le json que je vouait mettre dans la grid?

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    J'ai fais une réponse complète dans ton premier post

    le JsonStore ne fonctionne pas comme un ArrayStore il n'a pas besoin d'appel AJAX un proxy suffit et le format du JSON n'est pas un tableau de donnée mais une réponse structurée.

    Je conseille d'utiliser un simple fichier text sur le serveur à la place du servelt
    de mettre au point le code ExtJS et de produire ensuite un JSON en java qui soit à l'identique du fichier texte.

    la doc est très précise sur le format attendu
    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
    var store = new Ext.data.JsonStore({
        // store configs
        storeId: 'myStore',
     
        proxy: {
            type: 'ajax',
            url: 'get-images.php',
            reader: {
                type: 'json',
                root: 'images',
                idProperty: 'name'
            }
        },
     
        //alternatively, a Ext.data.Model name can be given (see Ext.data.Store for an example)
        fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date'}]
    });
    le code JSON attendu est de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
        images: [
            {name: 'Image one', url:'/GetImage.php?id=1', size:46.5, lastmod: new Date(2007, 10, 29)},
            {name: 'Image Two', url:'/GetImage.php?id=2', size:43.2, lastmod: new Date(2007, 10, 30)}
        ]
    }
    je conseille fortement de faire le tuto
    http://docs.sencha.com/extjs/4.2.1/#...n_architecture
    Il est très progressif et montre bien le fonctionnement des grid forms et autre objets d'ExtJS.
    entre autre il sépare bien le travail sur l'IHM du travail sur le modèle de donné
    il commence par des données local au script js pour progressivement interagir avec le serveur.

    A+JYT

Discussions similaires

  1. [MySQL] Supprimer une ligne afficher dans une base de donnée
    Par julienchpt dans le forum PHP & Base de données
    Réponses: 31
    Dernier message: 14/10/2005, 15h45
  2. colonne affichée dans une liste déroulante
    Par Tierisa dans le forum Access
    Réponses: 4
    Dernier message: 13/10/2005, 16h13
  3. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  4. [c#]Gros text à afficher dans une textbox
    Par famemaur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/05/2005, 10h12
  5. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 11h15

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