Salut à tous,
Voila mon but est de faire de menus déroulants liés entre eux...Alors comme je suis un brave garçon j'ai d'abord fait une recherche ici avant de poster ^^ et j'ai donc trouvé ce code qui est exactement ce qu'il me faut...
SAUF QUE... (évidemment hein)
dans mon cas les tableaux sont alloués dynamiquement. Donc bon je fais les modifs nécessaires.
Au début de mon script j'ai
qui sont mes tableaux contenus dans les 2 menus (l'équivalent de pays et ville dans l'exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var DevType = new Array(); var Obj = new Array();
Puis dans une fonction de chargement des menus je mets
à ce moment la mon Obj contient exactement ce qu'il faut, mais des que j'arrive dans la partie HTML qui elle ne change pour ainsi dire pas :
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 function fctLoadDat() { DevType[0] = new Array("t0", "Account"); DevType[1] = new Array("t0", "Product"); DevType[2] = new Array("t0", "Project"); DevType[3] = new Array("t0", "Other"); . . . if (Nb != 0) for (i=1 ; i<=Nb ; i++) { newCpy = "ma super valeur dynamique" ArrayCpy[i-1] = new Array(); ArrayCpy[i-1][0] = newCpy; ind = "t0o"+i; Obj["t0"][i-1] = new Array(ind,newCpy);
là on me dit que DevType n'existe pas, plus exactement que DevType[...].0 a la valeur null ou n'est pas un objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <select name="ListDevType" onChange='javascript:filltheselect(this.name, this.value)'> <script language="javascript"> alert(DevType); for (i=0; i<DevType.length; i++) document.write("<option value=\"" +DevType[i][0]+ "\">" +DevType[i][1]); </script> </select>
et idem ici pour Obj["t0"].length
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <select name="ListObj" onChange='javascript:filltheselect(this.name, this.value)'> <script language="javascript"> alert(Obj["t0"]); for (i=0; i<Obj["t0"].length; i++) document.write("<option value=\"" +Obj["t0"][i][0]+ "\">" +Obj["t0"][i][1]); </script> </select>
La je ne comprends pas...c'est parce que je ne suis plus dans le meme script ? il ne connait plus mes variables globales ? mais alors pourquoi ca marche dans l'exemple avec les tableaux statiques ?![]()
Merci d'avance si vous avez une explication (et éventuellement une solution ^^)
Partager