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