Remplissage d'une liste deroulante

cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007 - 25 mai 2007 à 09:57
cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007 - 28 mai 2007 à 19:42
bonjour tt le monde,

j'ai un souci par rapport au remplissage de ma 2 liste c-a- dire au momment ou je clique sur direction qaulité , je dois avoir la case 0 dans switch ect ..

merci d'avance de votre aide

<tr>
   <td></td><td>Direction concernée :</td>
 
   <td>
       <select name="lstDirection">
          <option value="01">Direction de la qualité</option>
          <option value="02">Direction du personnel</option>
          <option value="03">Direction des services Techniques</option>
          <option value="04">Direction Informatique</option>
       </select>
   </td>
  </tr>

<script language ="javascript">document.forms[0].lstDirection.onchange = pvRemplir;
 
function pvRemplir()

    var ioOption;
    var iiSelect;
    var isChoix;
    iiSelect = document.forms[0].lstDirection.selectedIndex;
 
 
  
    switch(iiSelect)
    {
      
    case0 :   isChoix = new Array("Enquête de satisfaction", "Plaintes des usagers", "Taux d'infections nosocomiales"); break;
    case1 :   isChoix = new Array("Taux d'absenteisme", "Effectifs par service");break;
    case2 :   isChoix = new Array("Pannes du matériel biomédicale", "Pannes réseau électrique", "Pannes téléphoniques");break;
    case3 :   isChoix = new Array("Coupures reseau", "Indisponibilité SIH");break;
    }
   

10 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 mai 2007 à 10:30
ça ne devait pas être bien loin...
j'ai "simplifié" un petit poil

       <select id="lstDirection" name="lstDirection">
          <option value="01">Direction de la qualité</option>
          <option value="02">Direction du personnel</option>
          <option value="03">Direction des services Techniques</option>
          <option value="04">Direction Informatique</option>
       </select>

<script type="text/javascript">
var sel=document.getElementById("lstDirection");
sel.onchange = pvRemplir;
sel.onfocus = sel.selectedIndex=-1;
 
function pvRemplir()
{   switch ( sel.selectedIndex )
    {   
    case 0:   isChoix = new Array("Enquête de satisfaction", "Plaintes des usagers", "Taux d'infections nosocomiales"); break;
    case 1:   isChoix = new Array("Taux d'absenteisme", "Effectifs par service");break;
    case 2:   isChoix = new Array("Pannes du matériel biomédicale", "Pannes réseau électrique", "Pannes téléphoniques");break;
    case 3:   isChoix = new Array("Coupures reseau", "Indisponibilité SIH");break;
    }
 for ( var n=0;n

    et j'ai ajouter selectedIndex=-1 au focus, car
    pour un select, si le size est absebt ou =1, la
    1ère option est sélectionner par défaut.

    on pouvait faire autrement : http://codyx.org/snippet_listes-deroulantes-liees_89_l_javascript_19.aspx

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
25 mai 2007 à 11:39
Question naïve :
Dans le code HTML de la page, avez vous encadré <select>....</select> par <form...> </form>?
Si ces balises ont été omises, la mention "document.forms[0]" ne peut être comprise par l'interpréteur javascript.
Bon courage!...
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 mai 2007 à 12:37
bonne question jperre...

   c'est peut-être simplement ça,
   dans mon exemple, j'avais mis getElementById, comme ça, pas de souci

   je n'aime d'ailleurs pas du tout document.forms[0]...
   ça s'adresse obligatoirement au 1er formulaire décrit

   document.name_du_formulaire... et document.getElementById("id_du_formulaire")...
               valent mieux.

<hr />
            Cordialement             Bul    [mon Site]    [M'écrire]
<hr />
0
cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007
28 mai 2007 à 12:29
merci bultez de  m'avaoir répondu,

 j'ai un petit probleme c-a -d quand je selectionne  Direction de la qualité  tout ce passe bien dans ma  2liste  mais quand je selectionne le 2 item de la premiere liste , il s'ajoute à la premiere au lieu qu'il s'affiche séparement et cela peut aller jusqu'a l'infini
 merci de d'avance de ton aide.

 <tr>
   <td></td><td>Direction concernée :</td>
 
   <td>
       <select name="lstDirection">
          <option value="01">Direction de la qualité</option>
          <option value="02">Direction du personnel</option>
          <option value="03">Direction des services Techniques</option>
          <option value="04">Direction Informatique</option>
       </select>
   </td>
  </tr>

  <tr>
 <td><select name ="lst2">
        </select>
 </td>
  </tr>
0

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

Posez votre question
cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007
28 mai 2007 à 12:38
voici le bout de code:

for ( var n=0; n// alert(isChoix[n]);document.forms[0].lst2add(

new Option(isChoix[iiIndex]));

}
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mai 2007 à 12:46
Bonjour,

( ne pas utiliser forms[0] :
ça s'adresse obligatoirement au 1er formulaire décrit !
    il a un name ce formulaire, utilises le )


    pour ajouter dans un select , si ce que tu fais ne fonctionne pas :

    var s= document.name_du_formulaire

.name_du_select;
    s.length++;
    s.options[s.length-1].value =ce qu'on veut mettre dans le value;

    s.options[s.length-1].text= ce qu'on veut voir dans le text;





    >>s'ajoute à la premiere ?
        s'ajoute à ce qui existe déjà dans la liste ?
        si oui :

document.name_du_formulaire


.name_du_select.length =0;
                   effacera le contenu.



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007
28 mai 2007 à 13:32
merci  butez

je suis d'accord avec toi concernant le nom du formulaire mais parce que j'utilise les 2 selectes dans le même formulaire .

je ne  comprends pas trés bien ta reponse , je suis débutant dans la matiére.
 

 
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 mai 2007 à 15:01
>>mais parce que j'utilise les 2 selectes dans le même formulaire .
    et alors ? quel rapport ?
        document.name_du_fomulaire.name_du_1er_select
        document.name_du_fomulaire.name_du_2ème_select
       ...
       document.name_du_formulaire.tous_les_éléments_par_leur_name
    et ça baigne.

    que ne comprends-tu pas ?
        l'effacement des lignes du select ? : met 0 dans le .length, comme c'est dit

    l'ajout d'une ligne ? je te proposais une solution, si la tienne ne
       fonctionne pas ( déjà eu des soucis avec certains navigateurs )
       rien de plus.






<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
0
cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007
28 mai 2007 à 16:04
je ne cherche pas à effacer (j'ai compris ce que tu voulais dire par rapport à l'effacement)moi ce que je veux c'est quand je clique sur le 1 item il me renvoi la case 0 :  et ainsi de suite . j'ai essayé mais je n'y arrive pas pour le moment à trouver la solution.
cordialement.
0
cs_babylonne Messages postés 46 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 11 juillet 2007
28 mai 2007 à 19:42
merci bultez,

je viens de comprendre ta méthode et ça marche, effectivement à chaque fois que je clique il faudrait vider pour passer à la suivante et ainsi de suite . 
  je te remercie.

Cordialement.
0