begin process at 2012 05 29 00:34:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

basculer des elements d'une liste a l'autre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

basculer des elements d'une liste a l'autre

lundi 8 octobre 2007 à 10:25:22 | basculer des elements d'une liste a l'autre

attentio

Bonjour,

voila j'ai un script qui me permet de basculer des elements d'une liste a l'autre, ca fonctionne mais je voudrais utilser non pas le nom mais l'ID de chaque select
car pour recuperer l'ensemble des elements envoyés sur ma page de traitement j'ai besoin de mettre comme nom "liste2[]" et non pas "liste2".


-----------------------------------------------------------------------------------
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">

 function Deplacer(l1,l2) {
  if (l1.options.selectedIndex>=0) {
   o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
   l2.options[l2.options.length]=o;
   l1.options[l1.options.selectedIndex]=null;
  }else{
   alert("Aucune activité sélectionnée");
  }
 }
</SCRIPT>
</HEAD>

<BODY bgcolor="#FFFFFF">
<FONT FACE="Arial" SIZE='-1' COLOR="#000099">
<form name="formulaire"action="formulaire_annonce.php" method="post" enctype="multipart/form-data" >
 <TD align="center"><B><FONT size="2">Activités proposées</FONT></B><BR>
 <SELECT align=top name="liste1" ID="id_liste1" size=6  style="width:120px">
  <OPTION value="100">Allemagne</OPTION>
  <OPTION value="101">Autriche</OPTION>
  <OPTION value="102">Espagne</OPTION>
  <OPTION value="103">France</OPTION>
  <OPTION value="104">Italie</OPTION>
  <OPTION value="105">Le reste du monde</OPTION>
 </SELECT>
 </TD>
 <TD align="center">
 <INPUT type="button" value="Ajouter >>>" onClick="Deplacer(this.form.liste1,this.form.liste2)">
 <BR><BR>
 <INPUT type="button" value="&lt;&lt;&lt; Enlever" onClick="Deplacer(this.form.liste2,this.form.liste1)">
 </TD>
 <TD align="center"><FONT size="2"><B>Pays retenus</B></FONT><BR>
 <SELECT align=top name="liste2"  ID="id_liste2" size=6 style="width:120px">
  <OPTION value="10">----------------------</OPTION>
 </SELECT>
 </TD>
 </TR></TABLE>
 <input type="submit">
</FORM>
</FONT></BODY></HTML>
-----------------------------------------------------------------------------------


je ne sais pas trop comment m'y prendre

merci de votre aide

lundi 8 octobre 2007 à 11:05:06 | Re : basculer des elements d'une liste a l'autre

Zobibol

Membre Club
Salut je sais pas si j'ai tout compris fort probable que non mais :

function Deplacer(_idListe1, _idListe2) {
    var l1 = document.getElementById(_idListe1);
   
var l2 = document.getElementById(_idListe2);
    if (l1.options.selectedIndex>=0) {
       o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
       l2.options[l2.options.length]=o;
       l1.options[l1.options.selectedIndex]=null;
  }else{
   alert("Aucune activité sélectionnée");
  }
 }



et ensuite sur les appels de déplacer :
    onClick="Deplacer('liste1','liste2')"
et vice et versa.

non ?
[o-_-o]
lundi 8 octobre 2007 à 11:10:43 | Re : basculer des elements d'une liste a l'autre

bultez

Membre Club


Bonjour,

    ID et NAME ne sont pas obligatoirement égaux.


<form   name="formulaire"action="formulaire_annonce.php"
            method="post" enctype="multipart/form-data" >
 <TD align="center"><B><FONT size="2">Activités proposées</FONT></B><BR>
     <SELECT align="top" name="liste[]" ID="liste1" size=6  style="width:120px">

     <SELECT align="top" name="liste[]" ID="liste2" size=6 style="width:120px">

    et on uttilise   document.getElementById("liste1")  
    ou                    document.formulaire["liste[]"][0]




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

lundi 8 octobre 2007 à 11:12:25 | Re : basculer des elements d'une liste a l'autre

bultez

Membre Club


comme traitement en php, il vaudrait probablement mieux    :

<SELECT align="top" name="liste1[]" ID="liste1" size=6  style="width:120px">
<SELECT align="top" name="liste2[]" ID="liste2" size=6 style="width:120px">

    et on uttilise   document.getElementById("liste1")  
    ou                    document.formulaire["liste1[]"]



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

lundi 8 octobre 2007 à 11:26:20 | Re : basculer des elements d'une liste a l'autre

attentio

merci pour ces reponses !
mes données sont en effet envoyé en php mais j'e suis un peu novice en JS et j'ai quelques difficutés
j'ai fait ceci :

 <INPUT type="button" value="Ajouter >>>" onClick="Deplacer(document.formulaire["liste1[]"],document.formulaire["liste2[]"])">
 <BR><BR>
 <INPUT type="button" value="&lt;&lt;&lt; Enlever" onClick="Deplacer(document.formulaire["liste2[]"],document.formulaire["liste1[]"])">
 </TD>
 <TD align="center"><FONT size="2"><B>Pays retenus</B></FONT><BR>
 <SELECT align=top name="liste2[]" size=6 style="width:120px">
 

mais ca ne marche pas !

merci encore de votre aide

lundi 8 octobre 2007 à 11:43:30 | Re : basculer des elements d'une liste a l'autre

bultez

Membre Club


et pourtant...

<body>
<script type="text/javascript">
    function Deplacer(a,b)
    {    alert(a.length+"\t"+b.length);    }
</script>
<form name="formulaire">
 <INPUT type="button" value="Ajouter >>>" onClick='Deplacer(document.formulaire["liste1[]"],document.formulaire["liste2[]"])'>
 <SELECT align=top name="liste1[]" size=6 style="width:120px">
        <option>1
        <option>2
    </select>
 <SELECT align=top name="liste2[]" size=6 style="width:120px">
        <option>3
    </select>
</form>
</body>

ça baigne.


mais tu fais :
onClick="Deplacer(document.formulaire["liste1[]"],document.formulaire["liste2[]"])">
les navigateurs se pomment

onClick='Deplacer(document.formulaire["liste1[]"],document.formulaire["liste2[]"]);'
ça devrait aller mieux.
tu n'utilises pas un éditeur de texte à coloration syntaxique ?
avec NotePad++, on voit tout de suite ( des " en rouge, signe d'erreur )



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

lundi 8 octobre 2007 à 11:58:43 | Re : basculer des elements d'une liste a l'autre

attentio

je viens d'essayer la technique de Zobibol, ca marche sauf que je suis obligé de reselectionner l'ensemble des elements de la liste2 pour les envoyer vers ma page de traitement.
moi ce que je voudrais C vraiment pouvoir envoyer l'integralité des elements de la liste 2, qu'ils soit selectionnés ou non.
comment porrais je faire pour remedier a cela ?

<?php
print_r($_POST);
?>
<HTML><HEAD>
<SCRIPT LANGUAGE="JavaScript">

function Deplacer(_idListe1, _idListe2) {
    var l1 = document.getElementById(_idListe1);
    var l2 = document.getElementById(_idListe2);
    if (l1.options.selectedIndex>=0) {
       o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
       l2.options[l2.options.length]=o;
       l1.options[l1.options.selectedIndex]=null;
  }else{
   alert("Aucune activité sélectionnée");
  }
 }
</SCRIPT>
</HEAD><BODY>

<form name="formulaire" method="post" enctype="multipart/form-data" >

 <TABLE><TR>
 <TD align="center"><B><FONT size="2">Activités proposées</FONT></B><BR>
 <SELECT align=top id="liste1" size=6  style="width:120px">
  <OPTION value="100">Allemagne</OPTION>
  <OPTION value="101">Autriche</OPTION>
  <OPTION value="102">Espagne</OPTION>
  <OPTION value="103">France</OPTION>
  <OPTION value="104">Italie</OPTION>
  <OPTION value="105">Le reste du monde</OPTION>
 </SELECT>
 </TD>
 <TD align="center">
 <INPUT type="button" value="Ajouter >>>" onClick="Deplacer('liste1','liste2')">
 <BR><BR>
 <INPUT type="button" value="&lt;&lt;&lt; Enlever" onClick="Deplacer('liste2','liste1')">
 </TD>
 <TD align="center"><FONT size="2"><B>Pays retenus</B></FONT><BR>
 <SELECT align=top name="valeurs[]" id="liste2" size=6 multiple="multiple" style="width:120px">
  <OPTION value="10">----------------------</OPTION>
 </SELECT>
 </TD>
 </TR></TABLE>
 <input type="hidden" name="test" value="oui">
 <input type="submit">
</FORM>
</FONT></BODY></HTML>

merci encore de votre aide

lundi 8 octobre 2007 à 12:13:31 | Re : basculer des elements d'une liste a l'autre

bultez

Membre Club
>> reselectionner l'ensemble des elements de la liste2 pour les envoyer vers ma page de traitement
    oui. ne sont envoyés que les option sélectionnés.
    fait un boucle pour sélectionner toutes les lignes avant l'envoi.
    le select.options[index].selected=true; ou "selected"; je ne sais plus

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

lundi 8 octobre 2007 à 12:18:39 | Re : basculer des elements d'une liste a l'autre

Zobibol

Membre Club
Heu, toujours moi qui comprends toujours rien... ;o)
Bon, pour savoir le bouton "enlever", vide complètement la liste ( pas uniquement la ligne sélectionnée ) ?
Si tel est le cas il suffit d'integrer un booleen à la méthode Déplacer :
/**
* Déplacement
*
* @param _idListe1
*                Identifiant de la première liste.
* @param _idListe2
*                Identifiant de la deuxième liste.
* @param _clear
*                booleen doit on vider la liste complète ?
*/
function Deplacer(_idListe1, _idListe2, _clear) {
  var l1 = document.getElementById(_idListe1);
  var l2 = document.getElementById(_idListe2);
  if (l1.options.selectedIndex>=0 && !_clear) {
       o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
       l2.options[l2.options.length]=o;
       l1.options[l1.options.selectedIndex]=null;
  }
  else if ( l1.options.selectedIndex>=0 && _clear){
      while (l1.options.length>0){
           o=new Option(l1.options[0].text,l1.options[0].value);
       l2.options[l2.options.length]=o;
       l1.options[0]=null;
      }
  }
  else{
   alert("Aucune activité sélectionnée");
  }
 }

sur "Ajouter" : onclick ="Déplacer('liste1','liste2', false)"
sur "Enlever" : onclick ="Déplacer('liste2','liste1', true)"

Mais comme je ne sais pas si c'est ce qui est demander....




[o-_-o]
lundi 8 octobre 2007 à 12:39:04 | Re : basculer des elements d'une liste a l'autre

attentio

merci zobibol pour ta reponse, mais j'ai du mal m'exprimer dans ma question, ... C pas l'ensemble des elements de la liste droite que je veux supprimer.
c'est que le problème qui se pose C que on doit pouvoir faire basculer les elements des deux listes sans probleme dans les deux sens (comme CT avant)
mais le soucis, C que si veux envoyer la liste des pays selectonné par l'internaute (qui'il a placé dans la liste 2) alors il est obliger de reselectionner l'ensemble des elements de la liste2 (ce qui parait compliquer a l'utilisation) donc l'ideal serait peut-être comme le proposait bultez de selectionner l'ensemble des elements quand on clique sur le bouton envoyer mais je n'y arrive pas

merci encore


1 2

Cette discussion est classée dans : elements, options, selectedindex, l1, basculer


Répondre à ce message

Sujets en rapport avec ce message

Recupérer le contenu de cette liste [ par voge ] Voila j'essaye d'utiliser ce petit script : Choix Mails <!--script de déplacement d'une liste a Récupérer les valeurs du script "Bascule" [ par nunor ] Bonjour, je cherche à dynamiser le script "Basculer des éléments d'une liste à l'autre" J'arrive à alimenter les deux listes par des résultats mysql. pb avec popup [ par EksTaZia ] j'ai un formulaire pour ajouter un ouvrage, et lorqu'on clik sur auteur, un popup s'ouvre avec toutes la liste des auteurs, je veux que lorsqu'on clik basculer entre deux listes (débutant) [ par billy67000 ] function Deplacer(l1,l2) { if (l1.options.selectedIndex>=0) { o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selected Problème tableau à bascule : comment recuprer les infos [ par evenkil ] Bonjour, j'ai un tableau à bascule et j'aimerai y récuperer les infos sélectionnée, mais je n'y arrive pas.En effet lors de la soumission du formulair recupération d'élément d'une liste [ par val_lala ] Bonjour,je commence tout juste le javaScript! et la je bloque...J'ai fait deux listes et on peut selectionner un element de la premiere liste et il va Un tableau de select génére une erreur [ par arzoul ] Salut,N'étant pas expert en Js et ayant cherché pendant qq heures, je me permets de venir poser ma question aux spécialistes :PVoici mon code, il perm supprimer des valeurs dans un select multiple [ par attentio ] bonjour j'ai probleme avec une fonction JS. voila elle etait censé boucler pour supprimer tout les valeurs mais voila ca ne marche pas par contre si j comment compresser mon code [ par flexi2202 ] bonjour a tous voici un code que j avais trouve un peu par hasard et que j ai modifie a l aide de certains membres et avec un tout petit peu de ma ma Liste déroulante [ par piep14 ] Bonjour, j'essais de faire une newsletter pour mon site ! J'ai fait une liste déroulante qui contient les adresses emails.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,934 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales