Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TRIER UNE LISTE À CHOIX MULTIPLES LIÉES PAR DES LABELS


Information sur la source

Catégorie :Formulaire Classé sous : liste, choixmultiple, dynamique Niveau : Initié Date de création : 23/02/2007 Date de mise à jour : 23/02/2007 18:39:57 Vu : 3 994

Note :
2 / 10 - par 1 personne
2,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Trier une liste de contacts en fonction de leur poste de travail !

Je suis en train de me creser la tête pour liéer 3 ListBox à choix multiple.

Fabiano13

 

Source

  • <HTML>
  • <HEAD>
  • <TITLE></TITLE>
  • <script type="text/javascript">
  • function Supprimer(_id, _type,_ids){
  • var ctrl = document.getElementById(_id);
  • if ( ctrl.listChilds == null){
  • ctrl.listChilds = new Array();
  • var ctrlsChilds = ctrl.getElementsByTagName("OPTGROUP");
  • for ( var i = 0; i < ctrlsChilds.length; i++){
  • var clone = ctrlsChilds[i].cloneNode(true);
  • clone._id = clone.id;
  • clone.id =null;
  • var childs = clone.getElementsByTagName ("OPTION");
  • for ( var j = 0; j< childs.length; j++){
  • childs[j]._id = childs[j].id;
  • childs[j].id = null;
  • }
  • ctrl.listChilds.push (clone );
  • }
  • }
  • var typeObj = ctrl.getElementsByTagName (_type);
  • for ( var i =0 ; i < _ids.length; i++){
  • for ( var j = 0; j < typeObj.length; j++){
  • if ( typeObj[j].label == _ids[i] ){
  • typeObj[j].parentNode.removeChild ( typeObj[j] );
  • j--
  • }
  • }
  • }
  • }
  • function Reconstruire(_id){
  • var ctrl = document.getElementById(_id);
  • // réinitialise le composant.
  • ctrl.innerHTML = "";
  • // ajoute tous ces fils
  • for ( var i = 0; i < ctrl.listChilds.length; i++){
  • var ret = ctrl.appendChild ( ctrl.listChilds[i]) ;
  • // réattribut l'id
  • ret.id = ret._id;
  • // fais de même pour ces fils
  • for ( var j = 0; j < ret.childNodes.length; j++){
  • if ( ret.childNodes[j]._id != null )
  • ret.childNodes[j].id = ret.childNodes[j]._id;
  • }
  • }
  • ctrl.listChilds = null;
  • }
  • function Trier(){
  • var selectione="";
  • for (i=0; i<document.getElementById('sFonction').options.length; i++) {
  • if (!document.getElementById('sFonction').options[i].selected ) {
  • selectione += "'" + document.getElementById('sFonction').options[i].label + "',"; }
  • }
  • var sSelection = selectione.substr(0,selectione.length - 1)
  • var ctrl = document.getElementById('sContact');
  • if ( ctrl.listChilds != null){
  • Reconstruire('sContact')}
  • Supprimer('sContact','OPTION',eval("[" + sSelection + "]"))
  • }
  • </script>
  • </HEAD>
  • <BODY>
  • <select onchange="Trier();" size=47 id="sFonction" multiple>
  • <optgroup id="Direction" label="Direction" style="background-color:#FFFFAA">
  • <option label="label_1_" style="background-color:#FFFFAA">Président Directeur Général</option>
  • <option label="label_2_" style="background-color:#FFFFAA">Directeur Général</option>
  • </optgroup>
  • <optgroup id="Marketing" label="Marketing" style="background-color:#AAFFFF">
  • <option label="label_3_" style="background-color:#AAFFFF">Directeur Marketing</option>
  • <option label="label_4_" style="background-color:#AAFFFF">Chef Produit</option>
  • <option label="label_5_" style="background-color:#AAFFFF">Assitant Marketing</option>
  • <option label="label_6_" style="background-color:#AAFFFF">Responsable Licence</option>
  • </optgroup>
  • <optgroup id="PAO" label="PAO" style="background-color:#FFAAFF">
  • <option label="label_7_" style="background-color:#FFAAFF">Directeur de Création</option>
  • <option label="label_8_" style="background-color:#FFAAFF">Directeur Artistique</option>
  • <option label="label_9_" style="background-color:#FFAAFF">Graphiste</option>
  • </optgroup>
  • </select>
  • <select size=47 id="sContact" multiple>
  • <optgroup id="Client" label="Client" style="background-color:#D7EBFF">
  • <option label="label_3_" id="id_1_" style="background-color:#D7EBFF">Guillermo Alcaide (Directeur Marketing)</option>
  • <option label="label_4_" id="id_2_" style="background-color:#D7EBFF">Thomas Leleu (Chef Produit)</option>
  • <option label="label_2_" id="id_3_" style="background-color:#D7EBFF">Alexandre Penaud (Directeur Général)</option>
  • <option label="label_1_" id="id_4_" style="background-color:#D7EBFF">Julien Obry (Président Directeur Général)</option>
  • <option label="label_5_" id="id_5_" style="background-color:#D7EBFF">Nathan Martinet (Assitant Marketing)</option>
  • <option label="label_3_" id="id_6_" style="background-color:#D7EBFF">Laurent Bram (Directeur Marketing)</option>
  • <option label="label_6_" id="id_7_" style="background-color:#D7EBFF">Vincent Boginoff (Responsable Licence)</option>
  • <option label="label_1_" id="id_8_" style="background-color:#D7EBFF">Mathieu Guenat (Président Directeur Général)</option>
  • <option label="label_8_" id="id_9_" style="background-color:#D7EBFF">Jonathan Dahan (Directeur Artistique)</option>
  • <option label="label_2_" id="id_10_" style="background-color:#D7EBFF">Christophe Lenzi (Directeur Général)</option>
  • <option label="label_1_" id="id_11_" style="background-color:#D7EBFF">Adrien Gombocz (Président Directeur Général)</option>
  • <option label="label_9_" id="id_12_" style="background-color:#D7EBFF">Romain Sichez (Graphiste)</option>
  • <option label="label_5_" id="id_13_" style="background-color:#D7EBFF">Nicolas Tholozan (Assitant Marketing)</option>
  • </optgroup>
  • <optgroup id="Utilisateur" label="Utilisateur" style="background-color:#DED8E9">
  • <option label="label_3_" id="id_14_" style="background-color:#DED8E9">Antoine Hamard (Directeur Marketing)</option>
  • <option label="label_2_" id="id_15_" style="background-color:#DED8E9">Alexis Klegou (Directeur Général)</option>
  • <option label="label_7_" id="id_16_" style="background-color:#DED8E9">Vincent Dubosclard (Directeur de Création)</option>
  • <option label="label_1_" id="id_17_" style="background-color:#DED8E9">Luca Rovetta (Président Directeur Général)</option>
  • <option label="label_8_" id="id_18_" style="background-color:#DED8E9">Robert Khoury (Directeur Artistique)</option>
  • <option label="label_4_" id="id_19_" style="background-color:#DED8E9">Arthur Surreaux (Chef Produit)</option>
  • <option label="label_6_" id="id_20_" style="background-color:#DED8E9">Hakim Rezgui (Responsable Licence)</option>
  • <option label="label_3_" id="id_21_" style="background-color:#DED8E9">Laurent Bondaz (Directeur Marketing)</option>
  • <option label="label_3_" id="id_22_" style="background-color:#DED8E9">Thomas van Cauter (Directeur Marketing)</option>
  • <option label="label_9_" id="id_23_" style="background-color:#DED8E9">Boris Obama (Graphiste)</option>
  • <option label="label_7_" id="id_24_" style="background-color:#DED8E9">Yannick Thomet (Directeur de Création)</option>
  • <option label="label_1_" id="id_25_" style="background-color:#DED8E9">Benoit Bottero (Président Directeur Général)</option>
  • <option label="label_5_" id="id_26_" style="background-color:#DED8E9">Benjamin Cselenko (Assitant Marketing)</option>
  • <option label="label_1_" id="id_27_" style="background-color:#DED8E9">Hugo Vouillat (Président Directeur Général)</option>
  • <option label="label_6_" id="id_28_" style="background-color:#DED8E9">Kristof de Leeuw (Responsable Licence)</option>
  • <option label="label_4_" id="id_29_" style="background-color:#DED8E9">Mark de Jong (Chef Produit)</option>
  • <option label="label_2_" id="id_30_" style="background-color:#DED8E9">Sliman Taghzouit (Directeur Général)</option>
  • <option label="label_9_" id="id_31_" style="background-color:#DED8E9">Boris Oumow (Graphiste)</option>
  • <option label="label_7_" id="id_32_" style="background-color:#DED8E9">Teddy Ranghella (Directeur de Création)</option>
  • </optgroup>
  • <optgroup id="Visiteur" label="Visiteur" style="background-color:#FFD393">
  • <option label="label_5_" id="id_33_" style="background-color:#FFD393">Konstantinos Kalaitzis (Assitant Marketing)</option>
  • <option label="label_2_" id="id_34_" style="background-color:#FFD393">Yannick Thivant (Directeur Général)</option>
  • <option label="label_1_" id="id_35_" style="background-color:#FFD393">Bilo Katis (Président Directeur Général)</option>
  • <option label="label_7_" id="id_36_" style="background-color:#FFD393">Benoit Viant(Directeur de Création)</option>
  • <option label="label_3_" id="id_37_" style="background-color:#FFD393">Gérôme Landin (Directeur Marketing)</option>
  • <option label="label_2_" id="id_38_" style="background-color:#FFD393">Didier Ouzer (Directeur Général)</option>
  • <option label="label_6_" id="id_39_" style="background-color:#FFD393">Armando Gijon (Responsable Licence)</option>
  • <option label="label_2_" id="id_40_" style="background-color:#FFD393">Daniel Cousin (Directeur Général)</option>
  • </optgroup>
  • </select></BODY></HTML>
<HTML>
<HEAD>
<TITLE></TITLE>
<script type="text/javascript">
            
function Supprimer(_id, _type,_ids){
    var ctrl = document.getElementById(_id);
    if ( ctrl.listChilds == null){
            ctrl.listChilds = new Array();
            var ctrlsChilds = ctrl.getElementsByTagName("OPTGROUP");
            for ( var i = 0; i < ctrlsChilds.length; i++){
                    var clone = ctrlsChilds[i].cloneNode(true);
                    clone._id = clone.id;
                    clone.id =null;
                    var childs = clone.getElementsByTagName ("OPTION");
                    for ( var j = 0;  j< childs.length; j++){
                            childs[j]._id = childs[j].id;
                            childs[j].id = null;
                    }
                    ctrl.listChilds.push (clone );
            }
    }
    var typeObj = ctrl.getElementsByTagName (_type);
    for ( var i =0 ; i < _ids.length; i++){
        for ( var j = 0; j < typeObj.length; j++){
            if ( typeObj[j].label == _ids[i] ){
                    typeObj[j].parentNode.removeChild ( typeObj[j] );
                    j--
            }
        }
    }
}

function Reconstruire(_id){
    var ctrl = document.getElementById(_id);
    // réinitialise le composant.
    ctrl.innerHTML = "";
    // ajoute tous ces fils
   
    for ( var i = 0; i < ctrl.listChilds.length; i++){
             var ret = ctrl.appendChild ( ctrl.listChilds[i]) ;
            // réattribut l'id
            ret.id = ret._id;
            // fais de même pour ces fils
            for ( var j = 0; j < ret.childNodes.length; j++){
                if ( ret.childNodes[j]._id != null )
                    ret.childNodes[j].id = ret.childNodes[j]._id;
            }
    }
    ctrl.listChilds = null;
}

function Trier(){
var selectione=""; 
for (i=0; i<document.getElementById('sFonction').options.length; i++) { 
if (!document.getElementById('sFonction').options[i].selected ) { 
      selectione += "'" + document.getElementById('sFonction').options[i].label + "',";  }
}
var sSelection = selectione.substr(0,selectione.length - 1)
var ctrl = document.getElementById('sContact');
if ( ctrl.listChilds != null){
Reconstruire('sContact')}
Supprimer('sContact','OPTION',eval("[" + sSelection + "]"))
}
</script>
</HEAD>
<BODY>
<select onchange="Trier();" size=47 id="sFonction" multiple>
    <optgroup id="Direction" label="Direction" style="background-color:#FFFFAA">
        <option label="label_1_" style="background-color:#FFFFAA">Président Directeur Général</option>
        <option label="label_2_" style="background-color:#FFFFAA">Directeur Général</option>
    </optgroup>
    <optgroup   id="Marketing" label="Marketing" style="background-color:#AAFFFF">
        <option label="label_3_" style="background-color:#AAFFFF">Directeur Marketing</option>
        <option label="label_4_" style="background-color:#AAFFFF">Chef Produit</option>
        <option label="label_5_" style="background-color:#AAFFFF">Assitant Marketing</option>
        <option label="label_6_" style="background-color:#AAFFFF">Responsable Licence</option>
    </optgroup>
    <optgroup   id="PAO" label="PAO" style="background-color:#FFAAFF">
        <option label="label_7_" style="background-color:#FFAAFF">Directeur de Création</option>
        <option label="label_8_" style="background-color:#FFAAFF">Directeur Artistique</option>
        <option label="label_9_" style="background-color:#FFAAFF">Graphiste</option>
    </optgroup>
</select>

<select size=47 id="sContact" multiple>
    <optgroup   id="Client" label="Client" style="background-color:#D7EBFF">
        <option label="label_3_" id="id_1_" style="background-color:#D7EBFF">Guillermo Alcaide (Directeur Marketing)</option>
        <option label="label_4_" id="id_2_" style="background-color:#D7EBFF">Thomas Leleu (Chef Produit)</option>
        <option label="label_2_" id="id_3_" style="background-color:#D7EBFF">Alexandre Penaud (Directeur Général)</option>
        <option label="label_1_" id="id_4_" style="background-color:#D7EBFF">Julien Obry (Président Directeur Général)</option>
        <option label="label_5_" id="id_5_" style="background-color:#D7EBFF">Nathan Martinet (Assitant Marketing)</option>
        <option label="label_3_" id="id_6_" style="background-color:#D7EBFF">Laurent Bram (Directeur Marketing)</option>
        <option label="label_6_" id="id_7_" style="background-color:#D7EBFF">Vincent Boginoff (Responsable Licence)</option>
        <option label="label_1_" id="id_8_" style="background-color:#D7EBFF">Mathieu Guenat (Président Directeur Général)</option>
        <option label="label_8_" id="id_9_" style="background-color:#D7EBFF">Jonathan Dahan (Directeur Artistique)</option>
        <option label="label_2_" id="id_10_" style="background-color:#D7EBFF">Christophe Lenzi (Directeur Général)</option>
        <option label="label_1_" id="id_11_" style="background-color:#D7EBFF">Adrien Gombocz (Président Directeur Général)</option>
        <option label="label_9_" id="id_12_" style="background-color:#D7EBFF">Romain Sichez (Graphiste)</option>
        <option label="label_5_" id="id_13_" style="background-color:#D7EBFF">Nicolas Tholozan (Assitant Marketing)</option>
    </optgroup>
    <optgroup   id="Utilisateur" label="Utilisateur" style="background-color:#DED8E9">
        <option label="label_3_" id="id_14_" style="background-color:#DED8E9">Antoine Hamard (Directeur Marketing)</option>
        <option label="label_2_" id="id_15_" style="background-color:#DED8E9">Alexis Klegou (Directeur Général)</option>
        <option label="label_7_" id="id_16_" style="background-color:#DED8E9">Vincent Dubosclard (Directeur de Création)</option>
        <option label="label_1_" id="id_17_" style="background-color:#DED8E9">Luca Rovetta (Président Directeur Général)</option>
        <option label="label_8_" id="id_18_" style="background-color:#DED8E9">Robert Khoury (Directeur Artistique)</option>
        <option label="label_4_" id="id_19_" style="background-color:#DED8E9">Arthur Surreaux (Chef Produit)</option>
        <option label="label_6_" id="id_20_" style="background-color:#DED8E9">Hakim Rezgui (Responsable Licence)</option>
        <option label="label_3_" id="id_21_" style="background-color:#DED8E9">Laurent Bondaz (Directeur Marketing)</option>
       <option label="label_3_" id="id_22_" style="background-color:#DED8E9">Thomas van Cauter (Directeur Marketing)</option>
        <option label="label_9_" id="id_23_" style="background-color:#DED8E9">Boris Obama (Graphiste)</option>
        <option label="label_7_" id="id_24_" style="background-color:#DED8E9">Yannick Thomet (Directeur de Création)</option>
        <option label="label_1_" id="id_25_" style="background-color:#DED8E9">Benoit Bottero (Président Directeur Général)</option>
        <option label="label_5_" id="id_26_" style="background-color:#DED8E9">Benjamin Cselenko (Assitant Marketing)</option>
        <option label="label_1_" id="id_27_" style="background-color:#DED8E9">Hugo Vouillat (Président Directeur Général)</option>
        <option label="label_6_" id="id_28_" style="background-color:#DED8E9">Kristof de Leeuw (Responsable Licence)</option>
        <option label="label_4_" id="id_29_" style="background-color:#DED8E9">Mark de Jong (Chef Produit)</option>
        <option label="label_2_" id="id_30_" style="background-color:#DED8E9">Sliman Taghzouit (Directeur Général)</option>
        <option label="label_9_" id="id_31_" style="background-color:#DED8E9">Boris Oumow (Graphiste)</option>
        <option label="label_7_" id="id_32_" style="background-color:#DED8E9">Teddy Ranghella (Directeur de Création)</option>
    </optgroup>
    <optgroup  id="Visiteur" label="Visiteur" style="background-color:#FFD393">
        <option label="label_5_" id="id_33_" style="background-color:#FFD393">Konstantinos Kalaitzis (Assitant Marketing)</option>
        <option label="label_2_" id="id_34_" style="background-color:#FFD393">Yannick Thivant (Directeur Général)</option>
        <option label="label_1_" id="id_35_" style="background-color:#FFD393">Bilo Katis (Président Directeur Général)</option>
        <option label="label_7_" id="id_36_" style="background-color:#FFD393">Benoit Viant(Directeur de Création)</option>
        <option label="label_3_" id="id_37_" style="background-color:#FFD393">Gérôme Landin (Directeur Marketing)</option>
        <option label="label_2_" id="id_38_" style="background-color:#FFD393">Didier Ouzer (Directeur Général)</option>
        <option label="label_6_" id="id_39_" style="background-color:#FFD393">Armando Gijon (Responsable Licence)</option>
        <option label="label_2_" id="id_40_" style="background-color:#FFD393">Daniel Cousin (Directeur Général)</option>
    </optgroup>
</select></BODY></HTML>

Historique

23 février 2007 18:39:57 :
J'ai oublié de remercier Zobibol et PetoleTeam qui sans eux je ne serai pas arriver à ce résultat !

Commentaires et avis

signaler à un administrateur
Commentaire de PetoleTeam le 23/02/2007 17:43:28

Bonjour,
J'ai beau chercher je ne vois même pas un petit mot pour Zobibol.
Ingratitude ou oubli, je vote pour l'oubli.

signaler à un administrateur
Commentaire de bkheuch le 02/04/2007 16:03:38

bjr, je viens de tester votre code, mais en fait j'avoue que je comprends pas bien comment ça fonctionne, je suis pas encore aller fouiner dans le code, vous avez parler de "tri" et je ne vois pas comment ça se passe. quand je clique sur une rubrique ya pas de changement à aucun niveau.
merci d'avance

signaler à un administrateur
Commentaire de fabiano13 le 02/04/2007 17:23:39

Tu as 2 listes qui sont liées entre elles par des critères. Lorsque tu sélectiones un ou plusieurs critères de la liste de gauche (poste de travail occupé) cela trie la liste de droite (contacts) qui on cette fonction. Je ne sais pas si je suis clair ! Voilà !!! a+

signaler à un administrateur
Commentaire de bkheuch le 02/04/2007 17:45:30

ben je viens de le faire, mais ya pas eu de tri, peut être qu'il ya quelque chose qui manque. j'ai  fait 1000 clics mais rien.

signaler à un administrateur
Commentaire de fabiano13 le 02/04/2007 17:48:02

Ca marche sous ie, le reste je ne sais pas !

signaler à un administrateur
Commentaire de bkheuch le 02/04/2007 17:51:57

j'ai testé avec firefox d'abord et je viens de tester avec IE5, mais ça marche tjrs pas. bizarre!!!

signaler à un administrateur
Commentaire de fabiano13 le 02/04/2007 17:58:51

J'ai fais un copie coller et pourtant ça marche sur ie et sur Firefox !
Il faut cliquer uniquement sur la liste de gauche et ensuite la liste de droite se réactualise !
Sinon je ne sais pas quoi te répondre. Bon courage...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Creation liste dynamique php [ par houloul1 ] Bonjour à tous ,et merci d'avoir pris le temps de lire ce message.Mon souci est le suivant :je voudrai qu'apres avoir saisi un code postal cela affich Filtre dynamique ... [ par Hector78 ] Hello !Je cherche un script me permettant de filtrer dynamiquement des donn&#233;es &#224; l'aide d'une combobox. (ex. liste de membres, filtrer les h formulaire dynamique [ par refkaben ] Bonjour et meilleurs voeux pour&nbsp;tout monde.&nbsp;Je veux faire un formulaire dont les champs s'ajoute en cliquant sur un bouton.J'ai cr&#233;&#23 Checkbox et formulaire dynamique [ par petitelarve ] bonjour, Je cherche un moyen d'afficher des liste &lt;select&gt; et  des textearea suite au check sur une checkbox.Par exemble , si on click sur la ch liste dynamique [ par lenglais2001 ] Mon code javascript d'affichage de liste dynamique ne fonctionne pas sous IE alors qu'il fonctionne sous Firefox!je ne comprends pas pourquoi:&lt;scri supprimé des elements de la liste deroulante [ par kataVB ] boujour tout le mondeje suis entrain de modifier un code pour une site web et je bloque sur une ligne de javascript ( jamais fais JS avant ).&lt;tr&gt Auto update d'une liste déroulante avec PHP/MySQL [ par qntoinOo ] Bonjour à tous,J'ai besoin de faire un formulaire où je pourrais après sélection dans une liste déroulante afficher une autre liste déroulante avec de Rajouter un border a un element d'une liste contenu dans un div [ par KorBen31 ] Bonjour,J'ai une liste d'éléments contenu dans des div, et lorsque je clique dessus je voudrais rajouter un border sans recharger la page ou faire un Gestion d'onglets en HTML + Mise à jour dynamique du contenu des ongets (débutant) [ par anakyl ] Bonjour à tous,Je vous écrit car je souhaiterais solliciter votre aide, étant donné que je suis nul en javascript.J'ai découvert cet excellent script liste du musique [ par Lordrammstein ] Bonsoir,J'ai trouver une lsite de musique qui marche sur mozilla a cette adresse :http://www.javascriptfr.com/codes/SCRIPT-JAVASCRIPT-MUSIQUE-CHOIX-VI


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.