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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
var DevType = new Array(); 
var Obj = new Array();
qui sont mes tableaux contenus dans les 2 menus (l'équivalent de pays et ville dans l'exemple)
Puis dans une fonction de chargement des menus je mets
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);
à 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
 
<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>
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="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>
et idem ici pour Obj["t0"].length

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 ^^)