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

Signaler
Messages postés
5
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
25 janvier 2010
-
Messages postés
5
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
25 janvier 2010
-
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

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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]
Messages postés
5
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
25 janvier 2010

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>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
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]
Messages postés
5
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
25 janvier 2010

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