Trier un xml via combobox

Résolu
Signaler
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
-
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
-
Hello,

Tout est dans le titre :)

J'affiche l'ensemble de mes continents dans une combobox... je souhaiterai ensuite que ma 2e combobox contienne des données par rapport a la 1ere...
Exemple:

Je selectionne EUROPE dans la 1ere combobox.... la 2e affiche tout les pays d'europe...
Toutes les données sont dans un xml.

Help:)
Merci.

7 réponses

Messages postés
72
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
11 octobre 2011

alors z est une variable de 0 jusqu'a la longeur du tableau, en fait for (z in tableau) { remplace for (i=0;i<tableau.length;i++) {
tu peux prendre for (i in tableau) { si tu veux. ^^
ensuite pour le tableau :
monXml = new XML();
monXml.load("xml.xml");
monXml.ignoreWhite = true;
tableau = new Array();
monXml.onLoad = function(ok) {
    if (ok) {
        noeud = this.firstChild;
        for (i=0; i<noeud.childNodes.length; i++) {                     _root.tableau.push([noeud.childNodes[i].attributes.name,noeud.childNodes[i].attributes.adress,noeud.childNodes[i].attributes.pays]);
        }
    }
};
et dans la frame ,quand tu changes le 1er combobox :
listenerObject = new Object();
listenerObject.change = function(eventObject) {
    _root.combo2.removeAll();
    for (z in _root.tableau) {
        if (_root.tableau[z][2] == _root.combo1.selectedLabel) {
            _root.combo2.addItem(_root.tableau[z][0],_root.tableau[z][1]); //name dans le label et adress dans le data
        }
    }
};
combo1.addEventListener("change",listenerObject);
Messages postés
72
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
11 octobre 2011

Slt, tu peux donner un petit morceau de ton xml pour voir la forme ?
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hi,

En fait j'ai 2 xml.

Le 1er liste les continents et les pays:
<root>
    <cont id="1" name="europe">
      
       ...
    </cont>
    ...
</root>

Le 2e, liste des magasins:
<root>
    <mag id="1" name="mag01" adress="adressmag01" pays="france" />
    ...
</root>

Donc la 1ere combobox affiche les continents, la 2e combobox liste les pays suivants le continent selectionné, la 3e combobox liste les magasins suivant le pays selectionné...

merci
Messages postés
72
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
11 octobre 2011

Ben alors tu charges les 2 xml, le 1er tu le met dans le combobox et le 2eme sous forme de tableau [[id,name,..],[id,name...],..]
et quand tu choisi un pays dans le 1er combobox, tu charges dans le 2eme ceuxx qui on le meme id :

//vide le 2eme combobox
for (z in tableau) {
    if (tableau[z][0] == id_du_1er_combobox) {
       //tu l'ajoute au 2eme
    }
}
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

merci. j'ai oublier de specifier que j'etais sous flash 8 :-)

Merci encore
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

A quoi fais reference "z" ?

Comment créer un tableau avec mon 2e xml ?

merci
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Merci beaucoup pour tes reponses. enfin réussi :-) eheh