IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Remplissage Liste Select Multiple


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Points : 71
    Points
    71
    Par défaut Remplissage Liste Select Multiple
    Je voudrai vous demander un exemple une fonction javascript qui me permet de passer un élément sélectionné d'une liste multiple à une autre liste multiple !
    j'en ai déjà fait un pour passer un élément sélectionné de la liste multiple à un champs de saisie ,mais ce qui me pose probléme c'est comment insérer un élément dans une liste multiple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function fonction(list,c){
     
    	var t = [];
    	$R(0,list.options.length - 1).each(function(i) {
    		if (list.options[i].selected) {
    			t.push(list.options[i].value);
    		}
    	});
     
    	$(c).value = t.join(';');
     
     
    }
    Quelqu'un pourrait m'aider ? merci à l'avance !

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    de ce point de vue, une liste multiple se gère comme une liste "normale".
    Un exemple dans la FAQ.

    A+

  3. #3
    Membre régulier Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Merci de votre réponse !
    En fait j'ai réussit à passer un élément de la liste de départ à une autre mais maintenant j'ai besoin de passer plusieurs éléments sélectionnés vers la liste d'arrivé en même temps ,voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function funct(list,destination){
     
    	var t = [];
    	var option = null;
    	$R(0,list.options.length - 1).each(function(i) {
    		if (list.options[i].selected) {
    		alert(i);
    		option=new Option(list.options[list.options.selectedIndex].text,list.options[list.options.selectedIndex].value);
    		destination.options[destination.options.length]=option;
    		}
    	});
     
    	}
    Quelqu'un pourrait me corriger ?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par foufatoon Voir le message
    Quelqu'un pourrait me corriger ?
    Heu ... pas moi car je ne comprends pas la syntaxe

    Mais par rapport à l'exemple de la FAQ :
    au lieu de tester une seule option avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(listeDep.options[listeDep.selectedIndex].value != 0)
    il suffit que tu ajoutes une boucles pour parcourir toutes les options de la liste de départ. A chaque fois que tu tombes sur une avec .selected == true tu lui fait subir le traitement en fin de la fonction (la partie if(existe == 0){ ... )

    A+

  5. #5
    Membre régulier Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Points : 71
    Points
    71
    Par défaut
    J'y arrive toujours pas ,j'ai modifié le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function funct(list,destination){
     
     
    	var option = null;
     
     
    		 for(i = 0; i < list.options.length; i++)  {
     
    		  if(list.options[i].selected) {
     
    			option=new Option(list.options[list.options.selectedIndex].text,list.options[list.options.selectedIndex].value);
    			$('destination').options[destination.options.length]=option;		
    		}
     
     
    	}
     
    	}

  6. #6
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(list.options[i].selected) {		 
     option=new Option(list.options[i].text,list.options[i].value);
    			$('destination').options[destination.options.length]=option;		
    		}

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Je sais bien que JS est sensible à la casse, mais ça ne te gêne pas e genre de syntaxe ?N'utilise pas des mots réservés du langage comme identifiant ...

    Le reste semble bon (sauf que tu as méchamment "simplifié" la fonction de la FAQ )

    A+

  8. #8
    Membre régulier Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Points : 71
    Points
    71
    Par défaut
    Résolue ! Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    destination.options[destination.options.length]=option;
    sans le "$"

    Sinon pour vider un element ,j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function funct(list,destination){
    	var option = null;
    	for(var i = 0; i < list.options.length; i++)  {
    	
    			  if(list.options[i].selected) {		 
           		option=new Option(list.options[i].text,list.options[i].value);
           		destination.options[destination.options.length]=option;
           		list.options[i]=null;
           		
           		
           		
           		
    		}
    et la il sotte le 2eme élément si je sélectionne 3 :
    le 1er et le 3eme les vire de la liste de départ et les déplace dans ma nouvelle mais ..touche pas au 2éme !

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par foufatoon Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    destination.options[destination.options.length]=option;
    sans le "$"
    Si "destination" est un id, ça risque de ne fonctionner que sous IE ($() est l'équivalent de document.getElementById() ce qui rendait ton code cross-browsers) ...

    A+

  10. #10
    Membre régulier Avatar de Bigoodheart
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 154
    Points : 71
    Points
    71
    Par défaut
    Oui vous avez raison .. je ne sais pas ou avais-je la tète c'est pourtant si simple

    Mon problème est résolu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function funct(list,destination){
    	var option = null;
    	for(var i = 0; i < list.options.length; i++)  {
    	
    			  if(list.options[i].selected) {		 
           		option=new Option(list.options[i].text,list.options[i].value);
           		destination.options[destination.options.length]=option;
           		list.options[i]=null;
    
                    i--;  /* décrémenter pour ne pas soter l'option avant celle qui a été supprimé   */ 
           		
           		
           		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] déselection liste à selection multiple
    Par novice06 dans le forum IHM
    Réponses: 2
    Dernier message: 17/05/2010, 18h26
  2. Réponses: 2
    Dernier message: 14/11/2008, 17h01
  3. [ACCESS] - Requete issue d'une liste à selection multiple
    Par fredhali2000 dans le forum Access
    Réponses: 4
    Dernier message: 22/02/2006, 16h33
  4. Réponses: 2
    Dernier message: 14/12/2005, 18h08
  5. Liste à selection multiple
    Par marti dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/09/2005, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo