Page 1 sur 1

Pb de script de listes déroulantes dynamiques

Posté : 07 août 2005, 19:20
par enjoy man
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

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; }
Et mon formulaire :

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>

Posté : 07 août 2005, 19:42
par Cyrano
Tu as regardé ICI :?:

Posté : 07 août 2005, 21:03
par enjoy man
oui j'avais vu ton joli post, tres réussi d'ailleurs, je m'en suis bien aidé mais c vrai que si je ne trouve pas de solution a cette petite erreur de script je me dirigerai vers ton script