Manipulation de 2 listes deroulantes [Résolu]

Signaler
Messages postés
62
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
20 juin 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour


J’ai deux listes deroulantes qui contiennent, initialement, les memes elts.


Sur une meme pages.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je voudrai si possible avoir une fonction js qui, tout l’element selectionner de la premiere liste ; sera supprimer de la seconde liste. Sans recharger la page en entier







 


Merci  d’avance

11 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,

et pourquoi voudrais-tu que la page se recharge ?
ou alors tu ne nous dis pas tout, et c'est en
liaison avec le serveur ?

le_select_1.options[le_select_1.selectedIndex].text
c'est le texte affichée dans la ligne sélectionnée
de le_select_1
tu recherches le même texte dans le_select_2
et tu supprimes avec le_select_2.remove(n° de l'option)
sous reserve qu'un même texet n'existe pas plusieurs fois
( ou alors jouer avec le .value )

voili, voilou.

Cordialement.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
tu aurais pu mettre le html !   ça m'aurait évité de le taper...

quelques imprécisions :

 if(document.frm.liste2.item(i)==elt)    
      c'est quoi i ?   ton for utilise n
      c'est item(i) ? options[n].text ou options[n].value

tu avais des erreurs de syntaxe... au moins !

bon, petit exemple, sur le text ( tu adateras et optimiseras : brut de fonderie )

<!--table style="width:100%;">
<tr>
<td style=" border-width:2px;
border-style:solid;
border-color:#FF8000;
font-family:Courier New;
color:#400040;
font-size:12px;
background-color:#FFEFEF;">


</td>
</tr>
</tbody>
</table-->

<script>

function supp()

{  for ( var n=0; n<document.frm.liste2.length; n++ )

    {     if( document.frm.liste2.options[n].text==

               document.frm.liste1.options[document.frm.liste1.selectedIndex].text )

         {  document.frm.liste2.remove(n);

            break;

         }

    }

}

</script>

<form name="frm">

    <select name="liste1"     size=10>

        <option>un

        <option>deux

        <option>trois

        <option>quatre

    </select>

    <select name="liste2"    size=10>

        <option>un

        <option>deux

        <option>trois

        <option>quatre

    </select>

   

</form>

et tant qu'a faire, quand on développe :
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger mon Site] [M'écrire]         
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
tu n'étais pas loin...
il te suffisait d'un peu d'attention,
de patience, de réflexion, de deboggage...
et tu y parvenais seul.
@+
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Messages postés
62
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
20 juin 2009

pouvez vous m'aider du cote js car je m'y connais pas tres bien


merci
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
t'as toutes les billes ( ou presque )
fais au moins un petit quelque chose....
on devrait pouvoir t'aider à mettre au point
           Bul [mon Site] [M'écrire]         
Messages postés
62
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
20 juin 2009

function supp()
{
      // je recupere la valeur selectionner de la liste 1
     var elt = document.frm.liste1.value;
   // je parcours la liste 2 pour supprimer la valeur qui correspond à 
 //celle selectionner dans liste 1
     for(var n=0; n<document.frm.liste2.length; n++)
    {
        if(document.frm.liste2.item(i)==elt)
         {
            // une fois trouvé je le suprime
               document.frm.liste2.remove(i);
               break;
          }
    }
}

 voici ce que j'ai fais mais ça ne marche pas

Merci encore
Messages postés
62
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
20 juin 2009

merci bcp c'est exactement ce que je voulais.
encore merci
Messages postés
62
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
20 juin 2009

effectivement je m'en suis rendu compte. surtout avec l'erreur sur le compteur n au lieu de i.


Merci encore
Messages postés
62
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
20 juin 2009

et dites moi pour ajouter un element dans ma liste avec js on utilise qlq fonction?
J'ai tenté les fonction 'add, item' mais il ne donne rien
voici ma syntax:
- document.frm.liste2.item('frere') ;
- document.frm.liste2.item('frere') ;

Merci
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
euh... pas la bonne syntaxe !
il te faut une doc, la lire, et respecter la syntaxe
    tu ne peux pas inventer... ça ne marchera pas
prend selfHTML par exemple, en français, gratis,
        téléchargeable : ici la version chm ( une version html existe )
et un exemple de manipulation des select

          Bul [mon Site] [M'écrire]