SELECTION DE VALEURS A PARTIR DE 2 LISTES À CHOIX MUPLIPLES

ttl5v Messages postés 19 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 31 août 2006 - 31 août 2006 à 16:52
 Utilisateur anonyme - 20 mai 2011 à 00:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38199-selection-de-valeurs-a-partir-de-2-listes-a-choix-mupliples

Utilisateur anonyme
20 mai 2011 à 00:23
J'ai repris cette source et l'ai adaptée à mes besoin.
Elle se trouve ici ===> http://www.javascriptfr.com/codes/DOUBLE-LISTE-SELECTION_53189.aspx

JJDAI
Utilisateur anonyme
18 mai 2011 à 19:42
Super exactement ce que je cherchais, avec quelques amélioration toutefois.
J'ai modifié les lignes 28 et 41
- J'ai forcer la largeur des deux listes, c'est quand même plus agréable de garder les listes à la même largeur quelque soit le contenu.
- j'ai ajouter sur les deux liste l’évènement double clique pour basculer un seul item.

Lignes après modification:

<select name="colonne_stock" size="10" multiple style="width:200px" ondblclick="add_colonne();"></select>

<select name="colonne_afficher" size="10" multiple style="width:200px" ondblclick="remove_colonne();"></select>

JJDAI
gmni Messages postés 91 Date d'inscription mercredi 6 novembre 2002 Statut Membre Dernière intervention 20 mars 2009
7 mai 2011 à 10:58
bravo!
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
28 oct. 2009 à 16:44
bon en fait j'ai trouvé la solution qui m'est adaptée: dans mon cas, sachant que la liste de droite est forcément vide au chargement de la page, j'ai enlevé le code qui génère la ligne de droite:
// on remplit la liste de selection PAR DEFAUT en chargeant la page
for(i=0 ; i<colonne_init.length ; i++)
c2.options[i] = new Option(colonne_texts[colonne_init[i]],colonne_init[i]);

merci pour les commentaires nombreux dans ta source, ça m'a fait gagné beaucoup de temps!
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
28 oct. 2009 à 16:40
en effet, c'est du "quick and dirty" mais ça marche!
cependant, ça règle le problème de la valeur de document.configuration.colonne faussée, mais pas la ligne vide créée dans la liste de droite, ce qui est disgracieux et assez déconcertant pour l'utilisateur (si ce n'était que moi ça me serait égal).

Merci pour cette astuce qui contourne le problème, ça rend le script tout à fait utilisable :)
ryosama Messages postés 35 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 2 février 2009
28 oct. 2009 à 15:48
Un nettoyage de la valeur devrait suffire.

document.configuration.colonne.value.replace(/undefined/,'').replace(/^,|,$/,'').replace(/,+/,',');

Je ferai ça, c'est sale mais ça devrait marcher.
monsieurzouzou Messages postés 14 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 17 mai 2007
28 oct. 2009 à 15:36
super source merci :)

je l'ai adapté à des données provenant d'une base mysql, aucun problème à partir du moment où les deux listes sont générées à la volée et non vides.
Néanmoins un seul problème: lorsque la liste de droite (liste des valeurs pré-sélectionnées) est vide (var init_droite = ''), une valeur "undefined" (Firefox) ou vide (sous IE) est crée par défaut quand même, ce qui fausse le résultat de document.configuration.colonne.value.
J'ai cherché mais j'avoue ne pas être calé en javascript pour me débarrasser de cette valeur vide, quelqu'un a une idée?
merci
grislienski Messages postés 4 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 16 octobre 2008
21 nov. 2008 à 16:26
Super script, il marche super bien.

Juste une question, comment faire pour basculer un élément de la liste avec un double clic ?

je suppose qu'il faut ajouter une truc du genre : ondblclick="add_colonne()" sur chaque élément mais je ne sait pas trop ou ni comment vu que la création des listes est dynamique :(

Cela ferais un plus a ce code :)
tarmoussimus Messages postés 13 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 18 juillet 2008
18 juil. 2008 à 12:25
Pour un débutant comme moi! C'est super pour l'exercice...
tarmoussimus Messages postés 13 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 18 juillet 2008
18 juil. 2008 à 12:22
C'est très suggestif!
ryosama Messages postés 35 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 2 février 2009
28 juin 2007 à 22:06
Il y a toujours moyen de rajouter des choses mais je suis trop faignant pour faire du drag & drop ;-)

Si tu as le courage et la volonté de t'y mettre, n'hésite pas à poster ta source modifiée.
Utilisateur anonyme
28 juin 2007 à 10:33
Salut à tous!

Dsl de déranger tout le monde, mais je suis un bon débutant... cette source me convient parfaitement, mais j'aimerais savoir si il y a moyen de rajouter un drag and drop entre les deux listes?

Ce serait très pratique...

Voila merci a tous!
ryosama Messages postés 35 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 2 février 2009
30 mars 2007 à 12:19
Oui c'est bien evidement possible. Il faut simplement que le Javascript d'initialisation des valeurs soit produit par une page dynamique (PHP/Perl/ASP ...) ou alors passé par de l'Ajax.

En gros il faut ajuster les variables "colonne_texts" et "init_droite" qui contiennent respectivement la liste des valeurs possibles et la liste des valeurs pré-sélectionnées.
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007
30 mars 2007 à 11:57
Est-ce possible de mettre en valeur initial des données d'une BDD ??
ryosama Messages postés 35 Date d'inscription jeudi 19 février 2004 Statut Membre Dernière intervention 2 février 2009
27 nov. 2006 à 17:15
Avec ce code non ce n'est pas possible.
C'est possible dans l'absolu mais avec un autre javascript qui doit probablement exister sur ce site.
mayoronam Messages postés 2 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 27 novembre 2006
27 nov. 2006 à 17:01
bonjour !!!
ici super débutant
est ce possible d'afficher des images dans un tableau2(1 à 1),après avoir cliquer (1à1)dans un tableau1 qui contient leur nom en mode texte ? genre cliquez pour afficher .......

à bientôt...
ttl5v Messages postés 19 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 31 août 2006
31 août 2006 à 16:52
Perso je trouve ça pas mal si tu veux faire un CD de commande par exemple...
Je cherchais un truc simple et rapide pour commander des produits, bah voilà petit accessoire nickel sans utiliser un seul code de php sans bases de données... Exactement ce que je cherchais !
Merci beaucoup !