Problème de listes déroulantes liées / incompatibilité

dulcigirl Messages postés 5 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 janvier 2010 - 21 nov. 2007 à 14:17
dulcigirl Messages postés 5 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 janvier 2010 - 21 nov. 2007 à 16:19
Bonjour a tous !

Je suis étudiante et dans le cadre d'un projet, j'ai besoin de de réaliser des listes déroulantes liées.
Jusque là, aucun soucis, les listes sont crées mais problème, sous certains navigateurs, la deuxième liste déroulante s'affiche en fonction de ce qu'on sélectionne dans la première, et dans d'autres navigateur cela ne fonctionne pas...

Donc j'ai fais le test sous Firefox 2.0.0.9, IE 7 et Opéra 9.24 et tout marche nickel. Par contre, sous IE 6, la deuxième liste ne change pas du tout

Donc voilà je sais que j'ai du code qui fait tout planter... Et du coup un peu à la barbare, je le laisse là sinon ma page ne fonctionne pas du tout sous Firefox 2.0.0.9. Il s'agit de la partie en rouge

<script language="JavaScript" type="text/javascript">
var alfaromeoArray =  new Array("('Sélectionnez','',true,true)",
"('147')",
"('156')",
"('159')",
"('166')",
var citroenArray =  new Array("('Sélectionnez','',true,true)",
"('C1')",
"('C2')",
"('C3')",
"('C4')",
var nissanArray =  new Array("('Sélectionnez','',true,true)",
"('Patrol')");
var opelArray =  new Array("('Sélectionnez','',true,true)",
"('Agila')",
"('Astra')",
"('Corsa')",
"('Meriva')",
var peugeotArray =  new Array("('Sélectionnez','',true,true)",
"('107')",
"('1007')",
"('206')",
"('207')",
"('307')",
"('407')",
var renaultArray =  new Array("('Sélectionnez','',true,true)",
"('Clio')",
"('Espace')",
"('Grand Espace')",
"('Kangoo')",
"('Laguna')",
"('Megane')",
"('Modus')",
var seatArray =  new Array("('Sélectionnez','',true,true)",
"('Alhambra')",
"('Arosa')",
"('Cordoba')",
"('Ibiza')",
var volkswagenArray =  new Array("('Sélectionnez','',true,true)",
"('Golf')",
"('Lupo')",
"('Passat')",
"('Polo')",
"('Sharan')");

function populateModele(inForm,selected) {
var selectedArray = eval(selected + "Array");
while (selectedArray.length < inForm.modele.options.length) {
inForm.modele.options[(inForm.modele.options.length - 1)] = null;
}
for (var i=0; i < selectedArray.length; i++) {
eval("inForm.modele.options[i]=" + "new Option" + selectedArray[i]);
}
if (inForm.Marque.options[0].value == '') {
inForm.Marque.options[0]= null;
if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
}
else {       if (navigator.platform 'Win32' || navigator.platform 'Win16') {
            }
         }
      }
   }
}

if ( navigator.appName == 'Netscape') {
if (parseInt(navigator.appVersion) < 4) {
}
else {        if (navigator.platform 'Win32' || navigator.platform 'Win16') {
   }
}

if(inForm.modele.options[0].text == 'Sélectionnez') {
inForm.modele.options[0]= null;
   }
}
</script>

Merci d'avance pour votre attention

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 nov. 2007 à 14:38
Bonjour,

    on n'a probablement pas tout si ?
   
    un ch'tit exemple ici    qui fonctionne avec tous (?) les navigateurs ?

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
dulcigirl Messages postés 5 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 janvier 2010
21 nov. 2007 à 15:12
Bonjour bultez tout d'abord merci de ta réponse

Mais normalement si, vous avez tout
Sauf si tu parles du code pour les listes, le voici:

          <select name="Marque" onChange="populateModele(document.euroka,document.euroka.Marque.options[document.euroka.Marque.selectedIndex].value)">
                <option selected value=''>Marque</option>
                <option value='alfaromeo'>Alfa roméo</option>
                <option value='citroen'>Citroën</option>
                <option value='nissan'>Nissan</option>
                <option value='opel'>Opel</option>
                <option value='peugeot'>Peugeot</option>
                <option value='renault'>Renault</option>
                <option value='seat'>Seat</option>
                <option value='volkswagen'>Volkswagen</option>
          </select>
          <select name="modele">
          <option value=''>Modèle</option>
          </select>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 nov. 2007 à 15:21
avec FF  ou IE

Erreur : syntax error     file:Ligne : 22

var citroenArray =  new Array("('Sélectionnez','',true,true)",








¡————————¡——————————————————————————————————————————————————————————¡
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | |
| | et mieux, télécharger FireBug |
¦————————¦——————————————————————————————————————————————————————————¦
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | ° Afficher une notification de chaque erreur de script |
| | ° Désactiver le débogage de Scripts (Internet Explorer) |
| | |
| | et mieux, télécharger le Debogger IE |
¦————————¦——————————————————————————————————————————————————————————¦
|K—Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
¦————————¦——————————————————————————————————————————————————————————¦
|Opera |regarder la "console d'erreurs" |
| | utils / Asole d'erreurs |
¦————————¦——————————————————————————————————————————————————————————¦
|Safari |regarder Debug / Show JavaScript Console |
| | |
| |modif Fichier "Support:\Documents and Settings\utilisateur|
| |\Application Data\Apple Computer\Safari\Preferences.plist"|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
!————————!——————————————————————————————————————————————————————————!




et je vous proposais ( dans le lien ) un script qui fonctionne partout ( peut-être ! )


                en pur javascript, pur php ou ajax.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 nov. 2007 à 15:51
pas testé ... mais

<form name="euroka">
          <select name="Marque" onChange....

...
var alfaromeoArray =  new Array("('Sélectionnez','',true,true)",
"('147')",
"('156')",
"('159')",
"('166')");
var citroenArray =  new Array("('Sélectionnez','',true,true)",

    déjà, ça devrait aller mieux.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dulcigirl Messages postés 5 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 25 janvier 2010
21 nov. 2007 à 16:19
Merci effectivement j'ai oublié de fermer les parenthèses sur certaines listes
et le form name est déjà présent mais plus haut dans mon code en fait ;)

Concernant le lien proposé précédemment, j'ai bien sur été voir mais je préfère tenter de débugger un code que je comprend plutot que de me lancer dans autre chose ;) mais merci beaucoup
0
Rejoignez-nous