Chargement ListBox en JS

[Fermé]
Signaler
-
Bonjour,

je possède deux listes box.

Ma listbox1 comporte un ensemble d'élément toujours visible.
Ma listbox2 est différente. Quand je choisi un élément de ma listbox1 dont la value est différente de 1 alors cela affiche un élément précis. Si la value est égale à 1 alors je dois avoir dans ma listbox2 toute les valeurs de mon tableau.

montableau[0][num] = 1
montableau[0][nom] = test1
montableau[1][num] = 2
montableau[1][nom] = test2

voici mon code js :

paramètre : form = formulaire
calibre : valeur selectionner dans ma listbox1

calibreArm
function calibre_change(form,calibre)
{
//vides le 2ème <select>
form.listbox2.options.length=0;
//récupères l'attribut value du 1er <select> (disons dans la variable v)
var v = form.listbox1.options[form.listbox1.selectedIndex].value;

if( calibre == 1)
{
//récupères dans modele les éléments indexés par v => tu obtiens un tableau d'objets
if (typeof(js_metrique[v]) != 'undefined')
{
var texte = '--- INCONNU ---';
//ajoutes pour chaque objet un objet "option" au 2ème <select>
for (var i = 1, l = js_metrique.length; i < l; ++i)
{
if(i == 0)
var o = new Option(texte, 1);
else
var o = new Option(js_metrique[i][0]['nomMetrique'],js_metrique[i][0]['numMetrique']);
form.listbox2.options[i] = o;
}
}
else
{
var texte = '--- SANS ---';
var o = new Option(texte, 0);
form.listbox2.options[0] = o;
}
}
else
{
texte = fichierRequest('?module=chargementjavascript&action=chargercalibre&type=famille&numCalibre='+calibre);
writeDiv(texte,'familleArme');
texte = fichierRequest('?module=chargementjavascript&action=chargercalibre&type=metrique&numCalibre='+calibre);
writeDiv(texte,'metriqueArme');
}
}


Autre chose : quand ma page se charge, que je choisi dans ma listbox1 une valeur égale à 1 il se passe ce que je souhaite j'ai l'ensemble des valeurs dans ma listbox2. Puis je choisi une autre valeur de ma listbox1 j'obtiens encore ce que je veux mais quand je clique à nouveau sur ma valeur 1 je n'ai plus la liste.

COmment faire ? Est-ce un problème de chargement de mon tableau ? ou bien du code ?