Probleme : une fonction qui ne marche qu'une fois sous IE?:?

Shrell
Invité n'ayant pas de compte PHPfrance

30 juin 2005, 16:27

Salut tout le monde
C'est mon premier post ici, je la fais courte
j'ai trouvé une fonction pour lier des menus déroulants, que j'ai modifiée pour en faire exactemement ce que je veux
Le code:
//creation des correspondances de listes
liste = new Array();
liste["Maison"] = new Array("tata");
liste["Appartement"] = new Array("titi");
liste["Loft"] = new Array("toto");
liste["Local"] = new Array("tutu");
liste["Terrain"] = new Array("tete");
liste["Fond de commerce"] = new Array("tyty");
liste["tata"] = new Array("baba");
liste["toto"] = new Array("bobo");

//fonction de lien
function gene(depart,arrivee) {
    mzero(arrivee);
	for(var i=0; i < liste[depart].length; i++) {
        var opt = new Option(liste[depart][i]);
        arrivee.options[arrivee.options.length] = opt;
    }
    arrivee.focus();
}
Voilà, donc j'explique pour etre le + clair possible, ma fonction de lien va zieuter dans ma liste déroulante quelle valeur je prends, et en fonction de ça reconstruit la liste que je désigne... jusque là rien d'aberrant
Seulement voilà, cette fonction marche nickel sous firefox et opera mais sous IE elle ne marche qu'une seule fois (pas moyen de faire des menus en cascade...)
Y aurait-il une ame charitable pour éclairer ma lanterne?

Shrell
Invité n'ayant pas de compte PHPfrance

01 juil. 2005, 12:13

Personne a une idée?
](*,) ](*,) ](*,) ](*,)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

01 juil. 2005, 12:18

à mon avis ça manque d'infos

c'est quoi cette classe Option ? c'est elle qui représente une liste

je ne vois pas trop comment tu utilises tout ça :roll:

Mammouth du PHP | 19672 Messages

01 juil. 2005, 13:05

Note : J'ai déplacé ce sujet dans le forum correspondant au lange, en l'occurence JavaScript. Merci d'avoir un tout petit minimum d'attention sur les choix avant de poster ;)

Pour ton problème avec les listes déroulantes liées, jette un coup d'oeil dans le forum des développeurs, il y a quelque chose qui devrait t'intéresser particulièrement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Shrell
Invité n'ayant pas de compte PHPfrance

01 juil. 2005, 13:05

ah oui en effet je viens de remarquer que Option n'est pas implémenté dans javascript....................... je m'en vais creuser de ce coté :D

Shrell
Invité n'ayant pas de compte PHPfrance

01 juil. 2005, 14:20

YEAAAAAAAAAAAH ça y'est j'ai trouvé!
Ma fonction Option() ne transportait pas assez d'arguments!!!!
Bon, pour ceux que ça interesse, parce qu'apparemment c'est un pb qui revient souvent, cette fonction me semble bcp moins lourde que les autres, donc je vous la communique (j'en ai les larmes aux yeux :))
liste = new Array(); 
liste["Maison"] = new Array("tata"); 
liste["Appartement"] = new Array("titi"); 
liste["Loft"] = new Array("toto"); 
liste["Local"] = new Array("tutu"); 
liste["Terrain"] = new Array("tete"); 
liste["Fond de commerce"] = new Array("tyty"); 
liste["tata"] = new Array("baba"); 
liste["toto"] = new Array("bobo"); 

//fonction de mise a zero des listes suivantes
function mzero(arrivee) {
    var taille = arrivee.options.length;
	for(var i=1; i < taille ; i++) {
	arrivee.options[1] = null;
    }
}

//fonction de lien 
function gene(depart,arrivee) {
	mzero(arrivee);
	for(i=0; i < nbliste[depart].length; i++) {
        arrivee.options[arrivee.options.length] = new Option(liste[depart][i],liste[depart][i],false,false);
    }
    arrivee.focus();
}
voilou, la fonction Option() doit comporter dans l'ordre (texte,valeur,defaultselected,selected)
donc voilà, une seule fonction pour toute une tripotée de menus dynamiques, (pour l'instant j'en suis à 12 d'affilée lol)
et voilou, j'ai codé ma première fonction!!!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

01 juil. 2005, 14:25

et on la trouve où la fonction Option() ? ;)

si y'a pas déjà un truc de ce genre tu peux poster dans le Coin des Développeurs, en expliquant un peu

Shrell
Invité n'ayant pas de compte PHPfrance

01 juil. 2005, 14:31

bah contrairement à ce que j'ai dit la fonction Option est directement implémentée dans javascript, donc quand tu fais form.machintruc[index] = new Option(paramètres) bah ça te crée directement ta nouvelle option dans ta liste déroulante!
Jubilation intense ^^ (ça fait 3 jours que je suis dessus lol)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

01 juil. 2005, 14:36

ah d'accord je croyais que c'était une fonction de ton cru ;)