Pb de script de listes déroulantes dynamiques
Posté : 07 août 2005, 19:20
Bonjour à tous
Alors voila j'ai un script pour des listes déroulantes liées (je me
suis inspiré de http://guylinux.no-ip.com/~guy/test2/articlegood.php).
Après avoir étudié,cherché,modifié,galéré, la première option
(selected) par défaut s'affiche parfaitement mais si je veux changer
de pays, aucun changement ne survient et j'ai une erreur du genre
document.formu2.element a la valeur null ou n'est pas un objet.
Pour illustrer mon pb, sur la page articlegood.php du lien plus haut
j'ai bien 'categorie1' 'article' qui s'affiche au chargement de la
page mais si je séléctionne 'categorie 2' j'ai un message d'erreur et
je garde l'affichage par defaut dans la liste 2.
Alors voilà je vous copie le code généré avec le tableau généré par
php (a partir d'une bdd)
et vous remercie de l'aide que vous pourriez m'apporter...
Cyril
Et mon formulaire :
Alors voila j'ai un script pour des listes déroulantes liées (je me
suis inspiré de http://guylinux.no-ip.com/~guy/test2/articlegood.php).
Après avoir étudié,cherché,modifié,galéré, la première option
(selected) par défaut s'affiche parfaitement mais si je veux changer
de pays, aucun changement ne survient et j'ai une erreur du genre
document.formu2.element a la valeur null ou n'est pas un objet.
Pour illustrer mon pb, sur la page articlegood.php du lien plus haut
j'ai bien 'categorie1' 'article' qui s'affiche au chargement de la
page mais si je séléctionne 'categorie 2' j'ai un message d'erreur et
je garde l'affichage par defaut dans la liste 2.
Alors voilà je vous copie le code généré avec le tableau généré par
php (a partir d'une bdd)
et vous remercie de l'aide que vous pourriez m'apporter...
Cyril
Code : Tout sélectionner
var categorie = new Array; //nouveau tableau
var modele=new Array;
categorie[0] = new Array("p0", "Bmw");
modele["p0"] = new Array;
modele["p0"]["0"] = new Array("4", "z3");
categorie[1] = new Array("p1", "Mercedes-Benz");
modele["p1"] = new Array;
modele["p1"]["0"] = new Array("3", "Classe A");
categorie[2] = new Array("p2", "Peugeot");
modele["p2"] = new Array;
modele["p2"]["0"] = new Array("1", "405");
categorie[3] = new Array("p3", "Renault");
modele["p3"] = new Array;
modele["p3"]["0"] = new Array("2", "Scenic");
function filltheselect(liste, choix)
{switch (liste)
{
case "categorie":
raz("modele");
for (i=0; i<modele[choix].length; i++)
{
new_option = new Option(categorie[choix][i][1],modele[choix][i][0]);
document.formu2.elements["modele"].options[document.formu2.elements["modele"].length]=new_option;
}
}
}
function raz(liste)
{l=document.formu2.elements[liste].length;
for (i=l; i>=0; i--)
document.formu2.elements[liste].options[i]=null;
}
Code : Tout sélectionner
<form name="formu2">
Choisir une categorie
<select name="categorie" onChange='javascript:filltheselect(this.name,
this.value)'>
<script language="javascript">
for (i=0; i<categorie.length; i++)
document.write("<option value=\"" +categorie[i][0]+ "\">"
+categorie[i][1]);
</script>
</select>
<br>
Choisir un article
<select name="modele" onChange='javascript:filltheselect(this.name,
this.value)'>
<script language="javascript">
for (i=0; i<modele["p0"].length; i++)
document.write("<option value=\"" +modele["p0"][i][0]+ "\">"
+modele["p0"][i][1]);
</script>
</select>
<br>
</form>