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 :

chargement d'un formpanel à partir d'un jsonstore


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    494
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 494
    Par défaut chargement d'un formpanel à partir d'un jsonstore
    Bonjour,

    je cherche à remplir les champs d'un formpanel à partir du résultat d'un jsonstore. Le formpanel est dans une fenêtre.

    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
    36
    37
    38
    39
    40
    41
    var ds2 = new Ext.data.JsonStore({
            				url: "scripts/InfosOfSpecie.php?sp="+Ext.getCmp('ind2').getValue(),
    					fields:['scname', 'AphiaID', 'url'],
    					autoLoad: true
    				});
     
    var testForm = new Ext.form.FormPanel({
                        width: 500,
    			store: ds2,
                        items: [{
                            xtype: 'fieldset',
                            title: 'Contact Information',
                            items: [{
                                    xtype:'textfield',
                                    fieldLabel: 'scname',
                                    name: 'scname'
                                }, {
                                    xtype:'textfield',
                                    fieldLabel: 'AphiaID',
                                    name: 'AphiaID'
                                }, {
                                    xtype:'textfield',
                                    fieldLabel: 'url',
                                    name: 'url'
                            }]
                        }]
     
    });
     
    ds2.on("load", function(thisStore, records, options) {
        var cnt = thisStore.getCount();
        console.log(cnt);
    testForm.render();
    });
     
    var win = new Ext.Window({
    				width: 300,
    				height: 150,
    				items: [testForm]
    });
    win.show();
    La fenêtre s'affiche bien, mais les champs sont vides, pourquoi ?

    Merci,

    Nico

  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
    Pour remplir un formulaire automatiquement le JSON doit être sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"success": true, "data": {......}}

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    494
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 494
    Par défaut
    voici mon JSON :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"success":true, "data": {"scname": "Abludomelita gladiosa" , "AphiaID": 102787, "url": "http://www.marinespecies.org/aphia.php?p=taxdetails&id=102787"}}
    Mais je n'ai rien dans les champs de mon formulaire.
    il me semble qu'il y a une histoire de requête asynchrone pour renvoyer le JSON, je gère pas bien ces histoires là, est-ce que c'est bien pris en compte dans le code que j'ai ?

    Nico

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    494
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 494
    Par défaut
    Bon alors, je ne sais pas si c'est la méthode la plus élégante, mais voici un code qui marche :
    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
    36
    37
    38
    39
    40
    41
    var ds2 = new Ext.data.JsonStore({
            				url: "scripts/InfosOfSpecie.php?sp="+Ext.getCmp('ind2').getValue(),
    					fields:['scname', 'AphiaID', 'url']
     
    				});
     
    ds2.load({ callback: function() { 
    		var testForm = new Ext.form.FormPanel({
                        width: 500,
                        items: [{
                            xtype: 'fieldset',
                            title: 'Contact Information',
                            items: [{
                                    xtype:'textfield',
                                    fieldLabel: 'scname',
                                    name: 'scname',
    				value: ds2.getAt(0).get('scname')
                                }, {
                                    xtype:'textfield',
                                    fieldLabel: 'AphiaID',
                                    name: 'AphiaID',
    				value: ds2.getAt(0).get('AphiaID')
                                }, {
                                    xtype:'textfield',
                                    fieldLabel: 'url',
                                    name: 'url',
    				value: ds2.getAt(0).get('url')
                            }]
                        }]
     
    		});
     
    		var win = new Ext.Window({
    				width: 300,
    				height: 150,
    				items: [testForm]
    		});
    		win.show();
     
    	} 
    });
    Nico

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

Discussions similaires

  1. chargement d'un combobox à partir d'un fichier text
    Par claire_cartier dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 09/04/2007, 15h45
  2. Chargement d'un combobox à partir d'un fichier text
    Par claire_cartier dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 04/04/2007, 11h04
  3. Chargement de liste déroulante à partir de fichiers
    Par ikeaboy dans le forum Langage
    Réponses: 4
    Dernier message: 11/07/2006, 16h36
  4. Réponses: 13
    Dernier message: 23/06/2006, 13h12
  5. Réponses: 4
    Dernier message: 08/06/2004, 10h01

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