Javascript : Pb suprenant de passage de param

tougus -  
 tougus -
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
Configuration: Windows XP
Firefox 2.0.0.13

2 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    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
    1. tougus
       
      non ca ne change rien .

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

      merci pour la remarque en tout cas ! ;)
      0
      1. Reivax962 Messages postés 3742 Statut Membre 1 011 > tougus
         
        Si tu mets un alert() juste après le var cat=... , ça donne le bon chiffre ??
        0
  2. tougus
     
    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