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 :

Trier un select ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Trier un select ?
    Bonjour,

    Dans ma listbox, j'ai plusieurs options définies par un texte (chiffré) et par des valeurs...
    J'aimerai trier les éléments de ma listbox en fonction de l'attribut texte de chaque option.
    Par exemple, les options suivantes :
    010020 (valeur3)
    041210 (valeur2)
    030010 (valeur1)
    002014 (valeur4)

    apparaîtraient une fois ordonnées dans ma listbox :

    002014 (valeur4)
    010020 (valeur3)
    030010 (valeur1)
    041210 (valeur2)


    Je cherche mais j'ai du mal à trouver comment faire
    Auriez-vous une idée, un bout de code?
    Merci

    Yoyo

  2. #2
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    tes champs texte tu les sors d'ou? parce qui si c d'une base de données alors tu dois faire un order by sur ton select

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Mes données sortent bien d'une base, mais le but du jeu est de réorganiser la place des options grâce à ce select
    Donc il faut que je gère çà en javascript, puis que j'enregistre les modifs dans ma base

  4. #4
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    j'ai pas compris l'interet et ce que tu cherches à faire en javascript

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    j'ai pas posté un trux dans la faq là dessus ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Spacefrog,

    J'ai bien regardé dans la FAQ, mais je n'ai rien trouvé sur le tri d'un select
    Je suis preneur du lien si possible

    En fait, mon problème est plus complexe Oluha, mais j'ai simplifié au maximum pour aller plus vite...

    Imaginez que je veuille organiser un menu avec des sous-rubriques à travers un select.
    Je select les éléments à organiser dans ma base, je les affiche dans un select, et je laisse l'utilisateur organiser son menu en positionnant les options en rubriques ou sous-rubriques et en montant ou rabaissant les options pour modifier leur ordre d'apparition dans le menu...
    La configuration X du menu est faite, j'enregistre la position des options (et donc la disposition du menu) dans ma base. L'utilisateur peut créer une autre configuration Y comme bon lui semble... Etc...
    Voilà pour le principe...
    Et pour y arriver, j'ai besoin (entre autres) de reclasser en javascript les éléments alphabétiquement dans mon select, puisque mes options(text) commencent par des chiffres selon une charte de nommage définie...
    Compris?
    Please help...

    Yoyo

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    tri alpha ou numérique ???

    voici déja l'alpha ...

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     
    <title>Tri alpha sur select</title>
    <script type='text/javascript'>
    function sortArray(){
    Liste= new Array();
    Obj= document.getElementById('monselect')
     
    for(i=0;i<Obj.options.length;i++){
    Liste[i]=new Array()
    Liste[i][0]=Obj.options[i].text
    Liste[i][1]=Obj.options[i].value
    }
    Liste=Liste.sort()
     
    for(i=0;i<Obj.options.length;i++){
    Obj.options[i].text=Liste[i][0]
    Obj.options[i].value=Liste[i][1]
    }
     
    }
     
     
    </script>
     
    </head>
     
    <body>
    <select id="monselect" onchange="alert(this.options[this.selectedIndex].value);">
    <option value="va">Charle</option>
    <option value="vc">Charlène</option>
    <option value="vg">Carlos</option>
    <option value="vd">Camille</option>
    <option value="vh">Aaron</option>
    </select>
    <br/>
    <input type="button" onclick="sortArray()" value="classer" />
    </body>
    </html>

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Spacefrog c génial c exactement ce que je voulais faire!!!
    Par contre mes champs commencent par des chiffres et finissent par des lettres, mais le classement a l'air d'être indifféremment fonctionnel pour un classement alpha ou num, voire numalpha comme moi ?
    Cà semble fonctionner nickel en tout cas...
    Par contre je bute toujours sur le traitement exact à appliquer pour faire monter et descendre mes options (et leurs sous-rubriques 'associées'...) dans mon select. J'ai fait un post dessus mais à priori çà ne chauffe pas grand monde lol!
    (oui c une invitation mdr)

    Merci encore,

    Yoyo

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    tu as le lien vers l'autre post ? trop feneant pour chercher LOL

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci Spacefrog, voici le lien ici !

    Yoyo

  11. #11
    Membre habitué Avatar de Benav
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 48
    Points : 167
    Points
    167
    Par défaut pas tout à fait résolu
    Quelqu'un saurait il m'expliquer comment procéder pour que le code spacefrog conserve le 'selected' ?

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avant le tri choppe le text du selectedindex...

    après le tri scanne les text et rend le select lorsqu'il y a concordance ...

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Juste une petite question au passage, car ce script m'a bien servi, mais malheureusement je bute sur quelque chose qui à mon avis vous semblera évident. J'ai un select qui est de type :

    00012 Boulons
    56223 Roulements
    03200 Armoire

    Grace au script, le tri numerique se passe très bien, et mets bien dans l'ordre :

    00012 Boulons
    03200 Armoire
    56223 Roulements

    Comment je peux faire, pour que via un autre 'bouton', cela me les reclasse par le nom?

    Merci d'avance

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    le code est dans le value et le texte en innerHTML ?
    ou les deux sont dans le value
    ou les deux sont en innerHTML ...
    le plus simple serait que tu nous montre le code html du select

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Merci SpaceFrog pour la rapidité de la réponse.

    Voici mon code html du select
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    <script type='text/javascript'>
    function sortArray(){
    Liste= new Array();
    Obj= document.getElementById('monselect')
     
    for(i=0;i<Obj.options.length;i++){
    Liste[i]=new Array()
    Liste[i][0]=Obj.options[i].text
    Liste[i][1]=Obj.options[i].value
    }
    Liste=Liste.sort()
     
    for(i=0;i<Obj.options.length;i++){
    Obj.options[i].text=Liste[i][0]
    Obj.options[i].value=Liste[i][1]
    }
     
    }
    </script>
     
    <select name="famille" id="monselect">
    <option value="53" >53 FUSIBLE</option>
    <option value="80" >80 ACCOUPLEMENT</option>
    <option value="55" >55 AMPOULE </option>
    <option value="56" >56 AMPOULE POUR VOYANT</option>
    <option value="64" >64 ANTIPARASITE</option>
    <option value="26" >26 BAGUE BRONZE</option>
    </select>
     
    <input type="button" onclick="sortArray()" value="classer" />
    Je n'arrive pas à le reclasser par le nom via un autre bouton. ( je suis débutant en javascript.)
    Merci d'avance

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     
    <title>Tri alpha sur select</title>
    <script type='text/javascript'>
    function sortSelect(order){
    Liste= new Array();
    Obj= document.getElementById('monselect')
     
    for(i=0;i<Obj.options.length;i++){
    Liste[i]=new Array()
    switch(order){
      case 'val'		: 	Liste[i][0]=Obj.options[i].value
                  		break;
      case 'alpha'	:  Liste[i][0]=Obj.options[i].text.match(/\D+/)[0]
    						break;
     }
    Liste[i][1]=Obj.options[i].text
    Liste[i][2]=Obj.options[i].value 
     
    }
     
     
    Liste=Liste.sort()
     
    for(i=0;i<Obj.options.length;i++){
    Obj.options[i].text=Liste[i][1]
    Obj.options[i].value=Liste[i][2]
    }
     
    }
     
     
     
    </script>
     
    </head>
     
    <body>
    <select name="famille" id="monselect" onchange="alert(this.value)">
    <option value="53" >53 FUSIBLE</option>
    <option value="80" >80 ACCOUPLEMENT</option>
    <option value="55" >55 AMPOULE </option>
    <option value="56" >56 AMPOULE POUR VOYANT</option>
    <option value="64" >64 ANTIPARASITE</option>
    <option value="26" >26 BAGUE BRONZE</option>
    </select>
     
     
    <br/>
    <input type="button" onclick="sortSelect('num')" value="classer numerique" />
    <input type="button" onclick="sortSelect('alpha')" value="classer alpha" />
    </body>
    </html>

  17. #17
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    on peut même aussi choisir de trier sur le innerHTML ou sur la valeur

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     
    <title>Tri alpha sur select</title>
    <script type='text/javascript'>
    function sortSelect(order){
    Liste= new Array();
    Obj= document.getElementById('monselect')
     
    for(i=0;i<Obj.options.length;i++){
    Liste[i]=new Array()
    switch(order){
      case 'textnum'		: 	Liste[i][0]=Obj.options[i].text.match(/\d+/)[0]
                  		break;
      case 'textalpha'	:  Liste[i][0]=Obj.options[i].text.match(/\D+/)[0]
    						break;
      case 'valnum'		: 	Liste[i][0]=Obj.options[i].value.match(/\d+/)[0]
                  		break;
      case 'valalpha'	:  Liste[i][0]=Obj.options[i].value.match(/\D+/)[0]
    						break;
     
     }
     
    Liste[i][1]=Obj.options[i].text
    Liste[i][2]=Obj.options[i].value 
     
    }
     
     
    Liste=Liste.sort()
     
    for(i=0;i<Obj.options.length;i++){
    Obj.options[i].text=Liste[i][1]
    Obj.options[i].value=Liste[i][2]
    }
     
    }
     
    </script>
     
    </head>
     
    <body>
    <select name="famille" id="monselect" onchange="alert(this.value)">
    <option value="53" >53 FUSIBLE</option>
    <option value="80" >80 ACCOUPLEMENT</option>
    <option value="55" >55 AMPOULE </option>
    <option value="56" >56 AMPOULE POUR VOYANT</option>
    <option value="64" >64 ANTIPARASITE</option>
    <option value="26" >26 BAGUE BRONZE</option>
    </select>
     
     
    <br/>
    <input type="button" onclick="sortSelect('textnum')" value="classer numerique" />
    <input type="button" onclick="sortSelect('textalpha')" value="classer alpha" />
    </body>
    </html>
    on passe alors en paramètre text ou val puis num ou alpha

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Un grand merci vraiment, c'est tout à fait ce que je voulais.
    Cela marche à merveille.

    Merci SpaceFrog.

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

Discussions similaires

  1. Macro selection d'un champ de cellules et trier
    Par Kestion100 dans le forum Excel
    Réponses: 24
    Dernier message: 20/01/2014, 13h13
  2. [MySQL] Trier un tableau selon un select
    Par lekunfry dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/09/2009, 13h44
  3. [MySQL] Trier par une listbox dont le 1er select serait la totalité
    Par theavengers dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/06/2008, 19h17
  4. Trier des SELECT
    Par Whombat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/10/2007, 08h19
  5. TRIER dans un SELECT
    Par Terminator dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/05/2005, 15h49

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