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 :

Affichage comboBox dynamique


Sujet :

Ext JS / Sencha

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut Affichage comboBox dynamique
    HI hi hi !

    J'ai (encore) un petit problème, mais cela doit être un détail.
    J'ai une comboBox dynamique, qui va me rechercher des contacts dans ma base de données. C'est à dire que si je tape "hu" dedans, elle va me chercher tout les noms ou prénoms contenant "hu". Le Json me retourne bien la bonne réponse, ce qui veut dire que ma requête est bonne etc.

    Cependant, je n'arrive pas a afficher les résultat que le Json me renvoi.

    Voici mon 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
    var contactStore= new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: '/Gestionnaire_de_courrier/server/json/RecoverySearchContactMember.php'
        }),
        reader: new Ext.data.JsonReader({
            root: 'contacts',
            totalProperty: 'count',
            id: 'ID'
        }, [
     
        {
            name: 'ID',
            mapping: 'ID'
        },
     
        {
            name: 'LASTNAME',
            mapping: 'LASTNAME'
        },
        {
            name: 'FIRSTNAME',
            mapping: 'FISRTNAME'
        }
        ]),
        autoLoad: true
     
    });
    Et voici ma comboBox :
    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
    new Ext.form.ComboBox({
                        fieldLabel: 'Contact',
                        id:'NewFolderContact',
                        name:'comboUtilisateur',
                        loadingText: 'Chargement en cours',
                        //valueField: 'LASTNAME',
                        diplayField: 'ID',
                        pageSize:5,
                        minChars:2,
                        //style:'width:90%',
                        typeAhead: false,
                        hideTrigger:true,
                        itemSelector: 'div.search-item',
                        store: contactStore,
                        //iaRecord: null,
                        selectOnFocus: true,
                        //iaOk: false,
                        //tpl: '<tpl for="."><div class="x-combo-list-item">{FIRSTNAME} {LASTNAME}</div></tpl>',
                        onSelect: function(record){ // override default onSelect to do redirect
     
                            comboUtilisateur.setValue(record.data.LASTNAME+" - "+record.data.FIRSTNAME);
                            comboUtilisateur.collapse();
                            //comboUtilisateur.iaOk = true;
                            //comboUtilisateur.iaRecord = record;
                        }
     
                    })
    Si quelqu'un peut m'aider..

    Merci d'avance !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    Bonjour,

    N'oublie pas de mettre "résolu" a ta dernière discussion ... !

    Voila ce que je te propose ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var genres = new Ext.data.Store({
    reader: new Ext.data.JsonReader({
    fields: ['ID', 'NOM_PRENOM'],
    root: 'contacts'
    }),
    proxy: new Ext.data.HttpProxy({
    url: 'http://NOM_DOMAINE/Gestionnaire_de_courrier/server/json/RecoverySearchContactMember.php'
    }),
    autoLoad: true
    });
    et reactiver le ... //valueField: 'NOM_PRENOM',

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut
    Ca ne marche pas.. =(

    Je vous met en piece jointe le resultat que sa me donne, parcke je ne sais pas comment l'expliquer ^^.

    Voici mon code actuel :

    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
    new Ext.form.ComboBox({
                                    fieldLabel: 'Contact',
                                    id:'ModifyContactLastFolderOffice',
                                    name:'comboUtilisateur',
                                    loadingText: 'Chargement en cours',
                                    valueField: 'ID',
                                    diplayField: 'LASTNAME',
                                    pageSize:5,
                                    minChars:2,
                                    //style:'width:90%',
                                    typeAhead: false,
                                    hideTrigger:true,
                                    itemSelector: 'div.search-item',
                                    store: contactStoreModifyLastFolderOffice,
                                    //iaRecord: null,
                                    selectOnFocus: true,
                                    //iaOk: false,
                                    //tpl: '<tpl for="."><div class="x-combo-list-item">{FIRSTNAME} {LASTNAME}</div></tpl>',
                                    onSelect: function(record){ // override default onSelect to do redirect
     
                                        comboUtilisateur.setValue(record.data.LASTNAME+" - "+record.data.FIRSTNAME);
                                        comboUtilisateur.collapse();
                                        //comboUtilisateur.iaOk = true;
                                        //comboUtilisateur.iaRecord = record;
                                    }
     
                                })
    et le store :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var  contactStoreModifyLastFolderOffice = new Ext.data.Store({
    reader: new Ext.data.JsonReader({
    fields: ['ID', 'LASTNAME'],
    root: 'contacts'
    }),
    proxy: new Ext.data.HttpProxy({
    url: '/Gestionnaire_de_courrier/server/json/RecoverySearchContactMember.php'
    }),
    autoLoad: true
    });
    Merci
    Images attachées Images attachées  

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    bonjour,

    je soupsonne que ton store ne soit pas recharger ... sinon, publie ta reponse json ... afin de verifier qu'elle a une belle tete ...



    dans ton combo box, essayes de mettre
    puis tu rajoutes l'event keyup (toujours dans ton combobox) de la maniere suivante:

    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
    new Ext.form.ComboBox({
                                    fieldLabel: 'Contact',
                                    id:'ModifyContactLastFolderOffice',
                                    name:'comboUtilisateur',
    ...
       listeners:{
    'keyup':function(tf,e){
    //teste que l'on a bien recupérer le contenu saisie ... 
    alert(tf.getValue());
    // lorsque j'appuie sur une touche, je recharge la store du combobox ...
    contactStoreModifyLastFolderOffice.removeAll();
       contactStoreModifyLastFolderOffice.reload({
    params:{saisie:tf.getValue()}})
    }
    }
    })

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Par défaut
    Re-bonjour tout le monde, et takitano ^^.

    Je crois que ta solution ne fonctionne pas, j'ai un message d'alerte qui s'affiche avec la chaine de caractere que je viens de taper. Et ensuite, le resultat dans ma combobox est tjs le meme : une toute petite ligne vide.

    Voici ce que me renvoi mon Json :

    - Post : limit 5
    query hu
    start 0
    Source
    start=0&limit=5&query=hu


    - Réponse : {"contacts": [{"ID":"1","LASTNAME":"Reeves","FIRSTNAME":"Hubert"}],"count":1}

    Voila, en espérant que cela t'inspire.

    Merci encore.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    Bonjour,

    Je pense qu'il y a une solution ... sans passer par ajax ...
    regarde le lien suivant ...
    http://www.extjs.com/learn/Tutorial:...2_%28French%29
    et attentivement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                            var comboCity = Ext.getCmp('combo-city');        
                            comboCity.clearValue();
                            comboCity.store.filter('cid', combo.getValue());
    tiens nous au courant de tes modif ...

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

Discussions similaires

  1. ComboBox dynamique à partir de fichier XML
    Par ikeaboy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/07/2006, 09h54
  2. Problème affichage ComboBox et barre déroulante!
    Par ghan77 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/01/2006, 14h09
  3. Affichage ComboBox multi-colonnes
    Par dough29 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/12/2005, 12h28
  4. [FLASH MX2004] Pb d'affichage texte dynamique
    Par mohican13 dans le forum Flash
    Réponses: 6
    Dernier message: 01/02/2005, 09h55
  5. [FLASH MX 2004] Affichage texte dynamique
    Par Sun3clipse dans le forum Flash
    Réponses: 8
    Dernier message: 25/06/2004, 16h24

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