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

jQuery Discussion :

Trier par Taille (o,K,M) dans table


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut Trier par Taille (o,K,M) dans table
    Bonjour,

    Dans une table HTML je cherche à ajouter une fonction simple de trie concernant la taille (Croissant/Décroissant) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    0
    22
    7.8K
    29K
    606K
    8.0M
    12.6M
    Comment faire pour faire un trie du type Size ?

    Merci

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    convertir tout en o dans la fonction en conservant un indexe pour le relier à son nr de ligne. puis utiliser la fonction de tri de tableaux que j'ai déja donnée sur le forum.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    en conservant un indexe pour le relier à son nr de ligne
    Gnéé

    Tu as pas un exemple à me donner plutôt ?

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Dans l'idée si tu n'as pas le reste des lignes a associer, tu peux te passer de la conservation de l'indexe
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <script type='text/javascript' src="http://code.jquery.com/jquery.js"></script>
    <script type='text/javascript'>
    function tri(a,b){
    return (+a >= +b)?1:-1
    }
     
    $(function(){
    tabtailles=new Array()
     
    $('#tailles tr').find('td:eq(0)').each( function(){
     		tabtailles.push( $(this).html() )
      })
     
    tabo=new Array()
    tabK=new Array()
    tabM=new Array()
    $.each(tabtailles, function(idx,valr){
    	switch ( valr.match(/.$/)[0] ){
    	 case "K" : tabK.push( valr.match(/(\d|\.)+/)[0] )
    	 			  break;
      	 case "M" : tabM.push(valr.match(/(\d|\.)+/)[0])
    	 			  break;
    	 default:   tabo.push(valr)
    	 			  break;
    	 }
    	 })
     
    tabo.sort(tri)
    tabK.sort(tri)
    tabM.sort(tri)
    $.each(tabK,function(a,b){ tabK[a]=b+"K"})
    $.each(tabM,function(a,b){ tabM[a]=b+"M"})
     
    var tabsorted=tabo.concat(tabK,tabM)
     
     
     
    $('#tailles tr').find('td:eq(0)').each( function(a,b){
     		$(this).html( tabsorted[a] )
      })
     
    })
     
    </script>
     
    <title>Nouvelle page 1</title>
    </head>
     
    <body>
    <table id='tailles'>
    <tr>
    <td>56</td>
    </tr>
    <tr>
    <td>8.0M</td>
    </tr>
    <tr>
    <td>0</td>
    </tr>
     
    <tr>
    <td>8</td>
    </tr>
    <tr>
    <td>12.6M</td>
    </tr>
    <tr>
    <td>29K</td>
    </tr>
    <tr>
    <td>606K</td>
    </tr>
    <tr>
    <td>22</td>
    </tr>
    <tr>
    <td>7.8K</td>
    </tr>
     
    </table>
     
    </body>
     
    </html>
    par contre si il y a d'autres td associés qui doivent suivre le tri il faudra aussi stocker l'indexe de ligne
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Par défaut
    Bonsoir et merci pour ton exemple !

    Que veut dire ta regex : match(/(\d|\.)+/)

    par contre si il y a d'autres td associés qui doivent suivre le tri il faudra aussi stocker l'indexe de ligne
    Oui, il y a d'autres TD associés à la valeur Size. J'ai un peux de mal à comprendre ton code

    Ici, je ne vois pas comment réintégrer les autres colonnes correspondantes à la colonne lue (size)

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    \d => numérique
    \. => .

    c'est pour supprimer le K ou M final
    Il serait sans doute moins gourmand de le faire avec un substr ...

    pour ce qui est de stocker le nr de ligne ce n'est sans doute pas necessaire en fait car il suffirait dans la boucle sur le tableau trier d'appender la ligne avec un having sur le contenu de la cellule de taille ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Trier par ordre croissant des valeurs dans un tableau
    Par ftrap dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/06/2013, 10h35
  2. [Deb] Trier par taille de répertoire ?
    Par byloute dans le forum Administration système
    Réponses: 2
    Dernier message: 21/09/2007, 11h25
  3. Réponses: 11
    Dernier message: 26/02/2007, 00h04
  4. Réponses: 8
    Dernier message: 11/11/2006, 19h31
  5. Trier des fichiers par taille par le VB
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 23/08/2006, 11h59

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