2 combobox liés entre elles

Résolu
Signaler
Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005
-
Messages postés
7
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
22 novembre 2006
-
Bonjour,
voila mon souci : dans un formulaire j'ai deux combobox et je souhaite ke lorsqu'on selectionne un item dans le premier combobox (nommée filière)
la liste des choix possible soit modifier dans le second combobox ( nommée cadre_emploi) .
j'ai utiliser
la function :

_root.filiere.change = function()
{
if(_root.filiere.value == "administrative")
{
_root.cadre_emploi.removeAll();
_root.cadre_emploi.addItem("administrateur","administrateur");
_root.cadre_emploi.addItem("attaché","attaché");
_root.cadre_emploi.addItem("rédacteur","rédacteur");
_root.cadre_emploi.addItem("adjoint administratif","adjoint administratif");
_root.cadre_emploi.addItem("agent administratif","agent administratif");
}
if(_root.filiere.value == "technique")
{
_root.cadre_emploi.removeAll();
_root.cadre_emploi.addItem("ingénieur","ingénieur");
_root.cadre_emploi.addItem("technicien supérieur","technicien supérieur");
_root.cadre_emploi.addItem("contrôleur de travaux","contrôleur de travaux");
_root.cadre_emploi.addItem("agent de maîtrise","agent de maîtrise");
_root.cadre_emploi.addItem("agent de salubrité","agent de salubrité");
_root.cadre_emploi.addItem("agent technique","agent technique");
_root.cadre_emploi.addItem("conducteur","conducteur");
_root.cadre_emploi.addItem("agent d’entretien","agent d’entretien");
}
if(_root.filiere.value == "culturelle")
{ ....}
}

mais ca ne marche pas
j'ai egalement tester ce code dans le gestionnaire de ma combobox filiere :

on(change)
{
if(_root.filiere.value == "administrative")
{
_root.cadre_emploi.removeAll();
_root.cadre_emploi.addItem("administrateur","administrateur");
_root.cadre_emploi.addItem("attaché","attaché");
_root.cadre_emploi.addItem("rédacteur","rédacteur");
_root.cadre_emploi.addItem("adjoint administratif","adjoint administratif");
_root.cadre_emploi.addItem("agent administratif","agent administratif");
}
if(_root.filiere.value == "technique")
{
_root.cadre_emploi.removeAll();
_root.cadre_emploi.addItem("ingénieur","ingénieur");
_root.cadre_emploi.addItem("technicien supérieur","technicien supérieur");
_root.cadre_emploi.addItem("contrôleur de travaux","contrôleur de travaux");
_root.cadre_emploi.addItem("agent de maîtrise","agent de maîtrise");
_root.cadre_emploi.addItem("agent de salubrité","agent de salubrité");
_root.cadre_emploi.addItem("agent technique","agent technique");
_root.cadre_emploi.addItem("conducteur","conducteur");
_root.cadre_emploi.addItem("agent d’entretien","agent d’entretien");
}
if(_root.filiere.value == "culturelle")
{ ....}
}

Toujours sans succes

j'ai chercher partout sur le site je n'est pas trouver de reponse a ma question.
quelqu'un pourrait-il m'aider

11 réponses

Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
essais comme ca :



// on crée les preliste a affiché, dit dataProvider

emploisAdministratifs = new Array();

emploisAdministratifs.push({label:"administrateur", data:"administrateur"});


emploisAdministratifs.push({label:"attaché", data:"attaché"});


emploisAdministratifs.push({label:"rédacteur", data:"rédacteur"});

//...



emploisTech = new Array();

emploisTech.push({label:"ingénieur",data:"ingénieur"});


emploisTech.push({label:"technicien supérieur",data:"techsup"});

//...



var ecouteur= new Object();

ecouteur.change = function(evt){

if (evt.target.selectedItem.label == "administrative"){

cadre_emploi.dataProvider = emploisAdministratifs;

} else if (evt.target.selectedItem.label == "technique"){


cadre_emploi.dataProvider = emploisTech;


}

}

filiere.addEventListener("change",ecouteur);

Flash sans Limites
_Benjy
Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005

Tros fort Benjy ca marche super !!!
Messages postés
7
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
22 novembre 2006

Je viens de tester la solution _benjy, mais rien ne se passe ( comme si l'écouteur ne fonctionnait pas). J'ai remplacé tout le code dans l'ecouteur par : trace("ok");

toujours sans resultat. Y-a-il qqch de particulier a faire avant pour que se code fonctionne ?

Merci
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

les ecouteur fonctionnent a patir de mx 2004 pas av c p'etre ca ca sinon ca marche ;)
++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
7
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
22 novembre 2006

malheureusement pour moi.. je suis bien en mx 2004. J'ai fait le test suivant :

directement sur le combobox :

on (change) {
trace (this);
}

--> ca ne donne rien

j'ai testé aussi directement sur le combobox :
on (release) {
trace (this);
}

--> ca donne :_level0.mcBoite.mcCollection

Le composant que j'utilise n'est pas un composant mx2004 (mx seulement) est-ce que ca vient de la ?
si oui, qu'elle est la soluce pour recuperer la valeur selectionné apres un changement ?

merci
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

tu t'es planté ou t'as une merde d'install (ex Flash Craké)
désolé
++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
7
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
22 novembre 2006

non plus... j'ai l'ai acheté... (ca se fête... ca fait pas longtemps!)...

Je galère vraiement

Voici un exemple simplifié de mon problème :

http://morey.free.fr/fla/test.fla

En ce qui concerne les prob d'install, si ca vient dela... qu'est ce que je peux faire ? (j'ai deja essayé de reinstaller et j'ai fait les mise à jour sur le site de macromedia)

merci de ton aide en tout cas,

A+
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

J'ai plutot du mal a croire que t'as bien mx 2004 vu que c les composant Flash mx que tu utilises
bizar....
donc si t'as vraiment mx 2004 utilise les composant mx 2004 et non les mx
sinon sur le composant mx, y'a pas d'ecouteur ! donc normal que ca marche pas :)
pour ton composant moi j'ai pas l'aide sur les composant mx et je me rapel plus du nom exact de la fonction pour la selection, mais si tu fais :
for (var i in mcCollection){
trace (i)
}
Flash va te lister tt les propriete et methode de ton obj,
j'y vois un setChangeHandler, y'a surement un changeHandler avec ou un truc du genre, look dans ton aide
++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
7
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
22 novembre 2006

Merci,

Tu as mis le doigt sur le problème, j'utilise bien flash mx2004, mais j'utilise un composant flash mx. Je n'arrive pas a utilisé le "setchangehandler()" (probablement un conflit de version du coup). Je viens d'essayer avec le composant mx2004 ca marche, le hic, c'est que j'ai du mal a redessiner correctement les composant mx2004... (forme carré, et changement de couleur). Si tu connais un lien avec de l'aide la dessus je suis preneur. Mais je vais chercher un peu...

Encore Merci.

ps : pratique le coup du :
for (var i in mcCollection){
trace (i)
}

je connaissais pas... mais c'est bien utile.
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

look les style css pour composant dans l'aide
++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
7
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
22 novembre 2006

Salut,

je me suis debrouillé avec l'aide, j'utilise les styles css pour les couleurs et j'ai modifié l'enveloppe manuellement pour la forme.

Voila mon nouveau problème :
Je ne trouve pas comment modifier la hauteur de la combobox en elle même . (pas de problème avec la hauteur des lignes)

mcCollection.setStyle("fontFamily","Verdana");
mcCollection.setStyle("color",0x000000);
mcCollection.setStyle("rollOverColor",0x999999);
mcCollection.setStyle("textRollOverColor",0xffffff);
mcCollection.setStyle("selectionColor",0xdddddd);
mcCollection.setStyle("textSelectedColor",0x000000);
mcCollection.setStyle("borderStyle", "solid");
mcCollection.setStyle("borderColor", 0x000000);
mcCollection.dropdown.setRowHeight(16);
mcCollection.dropdownWidth=mcCollection.width-1;

Si quelqu'un a une piste ?..je suis preneur

euh... une question comme ca: Est-ce que je dois posté ma question sur un autre sujet ou je peux continuer mes questions ici ?

merci A+