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 :

Remplir Textfield en fonction d'une comboBox


Sujet :

Ext JS / Sencha

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Points : 49
    Points
    49
    Par défaut Remplir Textfield en fonction d'une comboBox
    Me revoila !

    J'ai réussi a régler mon problème précédent, mais j'en ai un autre. Je voudrai remplir un textfield, en fonction du choix que je fais dans la combobox juste au dessus.

    Pour faire cela, voici mon code.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    new Ext.form.ComboBox({
                        width: 160,
                        fieldLabel: 'Contact',
                        id:'NewFolderContact',
                        name:'comboUtilisateur',
                        store: contactStoreNewFolder,
                        //displayField: 'LASTNAME',
                        typeAhead: false,
                        loadingText: 'Recherche en cours',
                        valueField : 'ID_MEMBER',
                        //hiddenName: 'ID_MEMBER',
                        pageSize:3,
                        minChars:2,
                        tpl : Tpl,
                        //style:'width:90%',
                        hideTrigger:true,
                        itemSelector: 'div.search-item',
                        selectOnFocus: true,
                        onSelect: function(record){ // override default onSelect to do redirect
     
                            this.setValue(record.data.LASTNAME+" "+record.data.FIRSTNAME);
                            this.collapse();
     
                            Ext.Ajax.request({
                                url: '/Gestionnaire_de_courrier/server/json/RecoveryMemberByContactMember.php',
                                method: 'POST',
                                params: {
                                    action : "RecoveryMemberByContactMember",
                                    ID_MEMBER : Ext.getCmp('NewFolderContact').getValue()
                                },
                                success: function(response) {
     
                                Members = Ext.util.JSON.decode(response.responseText);
                               Ext.getCmp('NewFolderAdhérent').setValue(Members.Members.MEMBER_NAME);
                                },
                                failure: function() {}
     
     
                            });
     
                        }
     
                    })
    Textfield :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
                        xtype:"textfield",
                        fieldLabel:"Adhérent",
                        id:"NewFolderAdhérent",
                        name:"NewFolderAdhérent"
                    }
    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
    var contactStoreNewFolder= 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: 'FIRSTNAME'
        },{
            name: 'PHONE',
            mapping: 'PHONE'
        },
        {
            name: 'ID_MEMBER',
            mapping: 'ID_MEMBER'
        }
        ]),
        autoLoad: true
     
    });
    Comme vous le voyez, pour remplir le textfield, je prends (normalement) le valueField de ma combobox pour l'utiliser dans une requete Ajax. Cependant, cette valueField n'a pas du tout ID_MEMBER comme valeur, mais elle a le contenu de ma combobox ( c a d le contact que j'ai selectionner ).

    C'est totalement illogique, et du coup, sa bloque ma requete Ajax (elle me retourne rien puisque je ne lui passer pas de ID_MEMBER)

    Voila, si quelqu'un a une idée..

    Merci d'avance.

  2. #2
    Membre averti
    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
    Points : 330
    Points
    330
    Par défaut
    salut ...
    en dessous de
    mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ext.getCmp('NewFolderAdhérent').setValue(Ext.getCmp('NewFolderContact').getValue());
    ps ... j'ai pas tres bien compris ...
    k'est ce que tu veux mettre dans ton textField ... ?

    en esperant de n'avoir pas repondu a coté ...

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Points : 49
    Points
    49
    Par défaut
    Salut Taki` ^^.

    Malheureusement, tu as répondu a coté de la plaque , mais je ne t'en veux absolument pas ^^.
    Je vais complété ce que j'ai dit dans mon précédent post.
    J'ai 2 tables dans ma BDD, une "contactmember" (composé des colonnes "ID", "LASTNAME", "FIRSTNAME", "PHONE", "MAIL", "ID_MEMBER") et une autre "member" (composé de "ID" et "NAME").
    Dans ma combobox, je fais une rechercher en "live" dans "contactmember" dès que je tape au moins deux lettres. ==> Ca, sa fonctionne : si je tape "hu" j'obtiens bien mon contact qui s'appelle Hubert Reeves.
    Cependant, même si ce qui s'affiche dans ma combobox est et doit être huber reeves, le valueField devrait normalement être "ID_MEMBER" de Hubert Reeves ! Et ce n'est pas le cas ! Le valueField actuel est "Reeves Hubert", c'est à dire ce qu'il y a DANS ma combobox.

    De plus, pour remplir mon textfield, j'ai besoin de "ID_MEMBER" de hubert reeves, pour le mettre en parametre de ma requete Ajax qui, elle, va chercher le "NAME" dans la table "member" grâce à l' "ID"
    ( Vous aurez compris que contactmember.ID_MEMBER = member.ID )

    En espérant avoir était plus clair.

    Merci.

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Points : 49
    Points
    49
    Par défaut
    Apparement, il faudrait utiliser hiddenName et hiddenId, mais je ne comprends pas comment cela marche..

  5. #5
    Membre averti
    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
    Points : 330
    Points
    330
    Par défaut
    ok,

    je pense avoir compris ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var search = Ext.getCmp('NewFolderContact').getValue();
    alert(search);//je verifie que search est hubert revees ...
    // ... mm projet Extjs en astronomie ... ? ou physique ou les deux ... ?
     
    //tu comprendra que 'LASTNAME' est le nom du champ 
    //ou tu veux effectuer ta recherche ... 
    var index= contactStoreNewFolder.find('LASTNAME',search,0,1,1);
     
    var mon_record = contactStoreNewFolder.getAt(index);
    //verification de ma recherche
    alert('last name :'+mon_record.data.LastName+'  -  id :'+mon_record.data.ID);
     
    //desactiver la ligne suivante si ma recherche est ok .... 
    Ext.getCmp('NewFolderAdhérent').setValue(mon_record.data.ID);

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 124
    Points : 49
    Points
    49
    Par défaut
    Bon, au bout de 3h passé la dessus, j'en ai eu marre, et j'ai fait quelque chose de très moche.
    J'ai créé un autre textfield (en hidden: true) que j'ai foutu n'importe ou dans mon panel. Il me permet de stocker le 'ID_MEMBER', et comme ça, je peux le récupérer facilement.

    Pas besoin de hiddenName, hiddenId, etc.

    C'est moche, mais ça marche et l'utilisateur n'y voit que du feu.

    Taki`, désolé, j'avai trouver cela avant de lire ton post, et j'ai pas le courage d'essayer ta solution. 3h m'ont largement suffit..

    Amicalement,
    BqiKo

    PS : Taki`, ce n'est pas un projet sur la physique ou l'astronomie ^^. Ce nom vient juste d'un délire avec des amis. C'est un peu notre "toto" d'informaticiens à nous =p.

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

Discussions similaires

  1. Remplir Textbox en fonction de deux combobox
    Par empirehell dans le forum VBA Access
    Réponses: 10
    Dernier message: 19/07/2010, 08h30
  2. [Toutes versions] Affichage d'une diapositive en fonction d'une combobox
    Par Harry Covair dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 23/03/2009, 20h00
  3. Afficher le résultat d'une fonction dans une comboBox
    Par poussin_44 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/07/2007, 15h06
  4. Réponses: 6
    Dernier message: 08/11/2005, 15h44

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