[DHTML] reponse a funwebmax : transfert entre deux listes

reponse a funwebmax : transfert entre deux listes [DHTML] - Programmation

Marsh Posté le 20-04-2001 à 14:51:36    

voila, dans la page html qui suit il est possible de transferer des elements de la liste 1 à la liste 2 et inversement. Si tu as des problemes de comprehension n'hesite pas.
 
j'ai testé sur ie5 ca marche, pour ie4 à voir.
 

Code :
  1. <html>
  2. <head>
  3. <title>transfert entre listes</title>
  4. </head>
  5. <body>
  6. <script language="javascript">
  7.   var ne=0;
  8.   var te=new Array();
  9.   function ee(i,t,l) {
  10.     this.id=i;
  11.     this.texte=t;
  12.     this.liste=l; // indique la liste ou se trouve l'element : 0 ou 1  
  13.     }
  14.   function ae(i,t,l) {
  15.     te[ne]=new ee(i,t,l);
  16.     ne++;
  17.     }
  18.   function il(l) {
  19.     var s="";
  20.     var n=0;
  21.     for (var i=0;i<ne;i++) {
  22.       if (te[i].liste==l) {
  23.         s=s+"<option value=\""+te[i].id+"\">"+te[i].texte+"</option>";
  24.         n++;
  25.         }
  26.       }
  27.     for (var i=n;i<ne;i++) {
  28.       s=s+"<option value=\"x\"></option>";
  29.       }
  30.     return(s);
  31.     }
  32.   function l12() {
  33.     var n1=0;
  34.     var n2=0;
  35.     for (var i=0;i<ne;i++) {
  36.       if (te[i].liste==1) {
  37.         document.all.l1.options[n1].value=te[i].id;
  38.         document.all.l1.options[n1].text=te[i].texte;
  39.         n1++;
  40.         }
  41.       else {
  42.         document.all.l2.options[n2].value=te[i].id;
  43.         document.all.l2.options[n2].text=te[i].texte;     
  44.         n2++;
  45.         } 
  46.       }
  47.     for (var i=n1;i<ne;i++) {
  48.       document.all.l1.options[i].value="x";
  49.       document.all.l1.options[i].text="";     
  50.       }
  51.     for (var i=n2;i<ne;i++) {
  52.       document.all.l2.options[i].value="x";
  53.       document.all.l2.options[i].text="";           
  54.       }
  55.     }
  56.   function e1() {
  57.     if (document.all.l2.selectedIndex<0) return;
  58.     var n=document.all.l2.options[document.all.l2.selectedIndex].value;
  59.     for (var i=0;i<ne;i++) {
  60.       if (te[i].id==n) {
  61.         te[i].liste=1;
  62.         }
  63.       }
  64.     l12(); 
  65.     }
  66.   function e2() {
  67.     if (document.all.l1.selectedIndex<0) return;
  68.     var n=document.all.l1.options[document.all.l1.selectedIndex].value;
  69.     for (var i=0;i<ne;i++) {
  70.       if (te[i].id==n) {
  71.         te[i].liste=2;
  72.         }
  73.       }
  74.     l12(); 
  75.     }
  76.   function et1() {
  77.     for (var i=0;i<ne;i++) te[i].liste=1;
  78.     l12(); 
  79.     }
  80.   function et2() {
  81.     for (var i=0;i<ne;i++) te[i].liste=2;
  82.     l12(); 
  83.     }
  84.   ae( 0,"Lundi",2);
  85.   ae( 1,"Mardi",2);
  86.   ae( 2,"Mercredi",2);
  87.   ae( 3,"Jeudi",2);
  88.   ae( 4,"Vendredi",2);
  89.   ae( 5,"Samedi",2);
  90.   ae( 6,"Dimanche",2); 
  91.   ae( 7,"janvier",1);
  92.   ae( 8,"février",1);
  93.   ae( 9,"mars",1);
  94.   ae(10,"avril",1);
  95.   ae(11,"mai",1);
  96.   ae(12,"juin",1);
  97.   ae(13,"juillet",1); 
  98.   ae(14,"aout",1); 
  99.   ae(15,"septembre",1); 
  100.   ae(16,"octobre",1); 
  101.   ae(17,"novembre",1); 
  102.   ae(18,"decembre",1);   
  103. </script>
  104. <table>
  105. <tr><td>
  106. <select name="l1" multiple size="16"><script language="javascript">document.write(il(1))</script></select>
  107. </td>
  108. <td>
  109. <table>
  110.   <tr><td><input type="button" value=" > " onClick="e2()"></td></tr>
  111.   <tr><td><input type="button" value=" < " onClick="e1()"></td></tr>
  112.   <tr><td><input type="button" value="<<"onClick="et1()"></td></tr>
  113.   <tr><td><input type="button" value=">>"onClick="et2()"></td></tr>
  114. </table>
  115. </td>
  116. <td>
  117. <select name="l2" multiple size="16"><script language="javascript">document.write(il(2))</script></select>
  118. </td></tr>
  119. </table>
  120. </body>
  121. </html>

Reply

Marsh Posté le 20-04-2001 à 14:51:36   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed