Javascript : Pb suprenant de passage de param

Fermé
tougus - 15 avril 2008 à 13:43
 tougus - 15 avril 2008 à 15:06
Bonjour,

Voila, je bosse sur une page qui affiche/ cache des div en fonction de l élément sélectionné dans un <SELECT>, avec lappel de la fonction sur un ONCHANGE :

<select name="data[ob_type]" onchange="display_obj_type(this.options[this.selectedIndex].value);" id="cat">
			<option value='0'></option>
			<option value='1'>&#922;&#949;&#943;&#956;&#949;&#957;&#959;</option>
                        <option value='2'>&#913;&#961;&#967;&#949;&#943;&#959;</option>
                        <option value='3' SELECTED>&#915;&#961;&#945;&#966;&#953;&#954;&#972;</option>
                        <option value='4'>&#931;&#973;&#957;&#948;&#949;&#963;&#956;&#959;&#962;</option>
                        <option value='5'>&#935;&#940;&#961;&#964;&#951;&#962;</option>	
</select>


Bon, jusque la ca fonctionne correctement, quand je change, ca affiche/cache mes div.

le problème, c'est que en fin de page , je voudrais afficher au chargement la div SELECTED

alors j ai inséré ce script :

<script>
var cat = document.getElementById("cat").options.selectedIndex; // pour mon test cat = 4
window.onload = display_obj_type(cat);
</script>


mais sans resultat ...

mais si je fais :
<script>
var cat = document.getElementById("cat").options.selectedIndex; 
window.onload = display_obj_type(4);                 // je met en static la valeur choisi !
</script>


la ca fonctionne ...

j ne comprends pas la différence ...

Je suis sur apache 2 , navigateur FF 2, Windows XP sp2

2 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 avril 2008 à 14:03
Bonjour,

Quand tu écris
var cat = document.getElementById("cat").options.selectedIndex;

Il me semble qu'il y a un options de trop.

Cela ne devrait pas plutôt être :
var cat = document.getElementById("cat").selectedIndex;
?

Xavier
0
non ca ne change rien .

J ai vérifié la valeur par un alert() , cela fonctionne.

merci pour la remarque en tout cas ! ;)
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > tougus
15 avril 2008 à 14:55
Si tu mets un alert() juste après le var cat=... , ça donne le bon chiffre ??
0
je fais :

<script>
var cat = document.getElementById("cat").options.selectedIndex; 


alert(cat);    //  m  affiche :                                     4
 
window.onload = display_obj_type(cat);   // j insere un alert dans cette fonction et il me renvoi aussi  :       4
</script>


mais toujours pas d affichage de la div ...


bon j ai trouvé une solution alternative qui ne solutionne pas l erreur présente par javascript.


<script>
window.onload = display_obj_type('<?php echo $cat;?>');  // la variable PHP $ cat contient aussi 4 et la ca marche
</script>


Je sais pas ...
0