Retourner sur PHPFrance
formation php

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   Accéder aux archivesArchives  S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
PHPFrance est maintenu par des bénévoles et soutenu par les sociétés Actoo et Anaska, Conseil et Formation pour PHP
Pour optimiser vos chances commencez par consulter la FAQ et faites une recherche.
Bon esprit, politesse et entraide sont les règles de ce forum.

[Intéressant] [INFO] Trier les tables à la volée

 
Poster un nouveau sujet   Répondre au sujet    PHPFrance Index du Forum -> Vos contributions
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
naholyr
I am Virus


Inscrit le: 07 Fév 2005
Messages: 2766
Localisation: Lyon
Ce membre fait partie des ViPHP
MessagePosté le: 13 Mar 2005, 11:50    Sujet du message: [INFO] Trier les tables à la volée Répondre en citant

Voici de quoi faire économiser de précieuses ressources coté serveur pour la gestion du tri des tables, et de quoi ajouter une fonctionnalité très sympa à vos tables statiques:

http://www.kryogenix.org/code/browser/sorttable/

Fonctionnement, étant donné que vous avez une table de cette forme:
Code:
<table ...>
  <tr><th>Titre1</th><th>Titre2</th>...</tr>
  <tr><td>Val1.1</td><td>Val2.1</td>...</tr>
  <tr><td>Val1.2</td><td>Val2.2</td>...</tr>
  ...
</table>


Il suffit d'inclure le script téléchargé (<script src="sorttable.js"></script>), et de transformer vos titres en liens utilisables par le script:
<th>TitreX</th>
devient (les parties en rouge sont celles à ajouter):
<th><a href="#" class="sortheader" onclick="ts_resortTable(this)">TitreX<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a></th>

Ben voilà, c'est tout Smile, en cliquant sur les titres vous pouvez trier votre table selon la colonne (ordres croissants et decroissants s'alternent).

Comme vous le voyez la partie en rouge est fixe, et ne dépend en rien de l'environnement, donc il est très simple de faire un chercher/remplacer pour modifier globalement son code (avec l'expression régulière qui va bien Razz).


J'ajoute que si vous voulez "pré-trier" votre table, ce n'est pas beaucoup plus compliqué: ajoutez un ID au lien sur le titre de la colonne que vous voulez trier.
Par exemple: <th><a href="#" class="sortheader" onclick="ts_resortTable(this)" id="default_sort">TitreX<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a></th>

Puis triez selon cette colonne avec l'instruction JS ts_resortTable(document.getElementById("default_sort"));
(bien sûr cette instruction doit être placée après la déclaration de la table et l'insertion de sorttable.js).

Voilà, une petite solution très sympathique, testée sous IE/Opera/Firefox.
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Elie
Eléphant


Inscrit le: 08 Fév 2005
Messages: 625
Localisation: Paris
MessagePosté le: 13 Mar 2005, 12:59    Sujet du message: Répondre en citant

Très bon script c'est vrai que je le faisait avec de simple lien en PHP ca peut etre interressant !
_________________
...
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur MSN Messenger
freemanolimit
Invité




MessagePosté le: 22 Déc 2006, 17:56    Sujet du message: tri d'une colonne... Répondre en citant

Bonjour,

Je n'arrive pas a utiliser ta fonction pour le tri d'une colonne.

Peux tu donner un exemple concret stp


Merci,

Arnaud.
Xenon_54
Magohamoth


Inscrit le: 07 Fév 2005
Messages: 1839
Localisation: Qc
MessagePosté le: 06 Jan 2007, 05:52    Sujet du message: Répondre en citant

http://www.activewidgets.com/
_________________
La programmation est l'expression de la poésie d'un programmeur
Génération PHP
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Hubert Roksor
Détendu


Inscrit le: 07 Fév 2005
Messages: 3155
Ce membre fait partie des ViPHP
MessagePosté le: 06 Jan 2007, 06:56    Sujet du message: Répondre en citant

ActiveWidgets a écrit:
This version of ActiveWidgets library does not work in Opera browser. If you need the version which supports Opera - you should upgrade to ActiveWidgets Professional Edition.


Je ne les ai jamais utilisées mais les fonctions "Grid" de YUI-ext ont l'air tout simplement ultimes.
_________________
Le saviez-vous ? Mozilla retient HTTP prisonnier du siècle dernier, à vous de voter ! (bug #327765)
Voir le profil de l'utilisateur Envoyer un message privé
Xenon_54
Magohamoth


Inscrit le: 07 Fév 2005
Messages: 1839
Localisation: Qc
MessagePosté le: 06 Jan 2007, 07:36    Sujet du message: Répondre en citant

Super! Je prends note!
_________________
La programmation est l'expression de la poésie d'un programmeur
Génération PHP
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
momox
Mammouth


Inscrit le: 15 Oct 2005
Messages: 1049
Localisation: Créteil (94)
MessagePosté le: 06 Jan 2007, 11:34    Sujet du message: Répondre en citant

Alors la, moi qui m'embetais a chaque fois pour coder ce genre de conneries !
Par contre, sur le lien que tu as passé hubert, comment récupere t'on la valeur modifiée ?
Par contre, pour l'organisation des listes, le seul truc bloquant, c'est dans les listes de membres... Car on ne peut pas afficher toute la la liste des membres d'un coup malheureusement...
Imaginez un site de 30.000 membres Laughing
@+
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
fab
Magohamoth


Inscrit le: 07 Fév 2005
Messages: 2192
Localisation: Bordeaux
Ce membre fait partie des ViPHP
MessagePosté le: 06 Jan 2007, 12:12    Sujet du message: Répondre en citant

Si j'ai bien compris il faut généré un tableau en javascript pour effectuer le tri, pas tres cool si le tableau fait 200 lignes... L'utilisateur devra en supporter deux fois le poids au chargement
Je suis pas fan :p
_________________
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Junfan
Embryon


Inscrit le: 24 Juil 2007
Messages: 14
MessagePosté le: 12 Nov 2007, 16:08    Sujet du message: MERCI ! Répondre en citant

Et bien moi j'aime ce qui me fait gagner du temps !
Et là, ca me fait gagner un temps pas possible !

Merci beaucoup ! Wink
Voir le profil de l'utilisateur Envoyer un message privé
fab
Magohamoth


Inscrit le: 07 Fév 2005
Messages: 2192
Localisation: Bordeaux
Ce membre fait partie des ViPHP
MessagePosté le: 12 Nov 2007, 22:07    Sujet du message: Répondre en citant

Finalement à l'occasion d'un stage j'ai trouvé une utilité à ce genre de systemes et particulièrement lorsque les tableaux sont très lourd.

Pour ceux qui connaissent jquery il existe un plugin permettant de gérer simplement ça :
http://docs.jquery.com/Plugins/Tablesorter
_________________
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
momox
Mammouth


Inscrit le: 15 Oct 2005
Messages: 1049
Localisation: Créteil (94)
MessagePosté le: 12 Nov 2007, 23:37    Sujet du message: Répondre en citant

Le problème après, c'est qu'on rentre dans le débat de l'accessibilité...
Et a partir de la, si on veut faire un site a la fois dynamique et accessible, on est obligés de faire double codage...
Une version statique (ou l'on fait la mise en page html) et une version dynamique avec JSON et tout le tralala...
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Truc
Vighneshvara modérateur


Inscrit le: 01 Sep 2005
Messages: 7164
Localisation: Lille
Ce membre fait partie de l'équipe de modérationCe membre fait partie des ViPHP
MessagePosté le: 13 Nov 2007, 00:11    Sujet du message: Répondre en citant

Ah malheureux n'avance pas ce sujet ici Laughing
_________________

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute
Voir le profil de l'utilisateur Envoyer un message privé
Berzemus
Ganesha


Inscrit le: 25 Sep 2007
Messages: 2676
Localisation: Département 96
Ce membre fait partie des ViPHP
MessagePosté le: 13 Nov 2007, 10:50    Sujet du message: Répondre en citant

fab a écrit:
Finalement à l'occasion d'un stage j'ai trouvé une utilité à ce genre de systemes et particulièrement lorsque les tableaux sont très lourd.

Pour ceux qui connaissent jquery il existe un plugin permettant de gérer simplement ça :
http://docs.jquery.com/Plugins/Tablesorter


Pray beni-sois-tu, je m'appretais justement à coder ça.. ça me laissera le temps de mieux fignoler d'autres aspects..
_________________
Mais qu'importe. (je suis ici)
Berze going social.
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
momox
Mammouth


Inscrit le: 15 Oct 2005
Messages: 1049
Localisation: Créteil (94)
MessagePosté le: 13 Nov 2007, 21:09    Sujet du message: Répondre en citant

Truc a écrit:
Ah malheureux n'avance pas ce sujet ici Laughing

C'est comme en politique, il y a toujours des sujets qui fachent ^^
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PHPFrance Index du Forum -> Vos contributions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Powered by phpBB © phpBB Group - PHPFrance est hébergé par Sivit