créer un tableau php avec tri et plusieurs tables...

créer un tableau php avec tri et plusieurs tables... - PHP - Programmation

Marsh Posté le 29-03-2012 à 10:36:51    

Bonjour,
J'ai un tableau php écrit comme cela :  

Code :
  1. <table width="695" border="0">
  2.   <tr>
  3.     <td width="100" style="color:#858585;"><?php $custom = $this->item->extra_fields; ?>
  4.  <?
  5.  $post = mb_substr($this->item->category->commune, 0, 15,'UTF-8');
  6.  echo $post;
  7.  echo '';
  8.  ?>  
  9.  </td>
  10.  <td width="115" style="color:#858585;"><a style="color:#858585;" href="<?php echo $this->item->category->link; ?>"><?
  11.  $post = mb_substr($this->item->category->name, 0, 15,'UTF-8');
  12.  echo $post;
  13.  echo '...';
  14.  ?></a></td>
  15.  <td width="65"><span style="color:#858585;"><?php echo $custom[0]->value; ?>
  16.  </td>
  17.  <td width="190"><a href="<?php echo $this->item->link; ?>">
  18.  <?
  19.  $post = mb_substr($this->item->title, 0, 30,'UTF-8');
  20.  echo $post;
  21.  echo '...';
  22.  ?>  
  23.  </a>
  24.  </td>
  25.  <td width="40" style="color:#858585;"><?php echo $custom[2]->value; ?></td>
  26.  <td width="90" style="color:#858585;"><?php echo $custom[1]->value; ?></td>
  27.   </tr>
  28. </table>


Je souhaiterai pouvoir trier mes colonnes en ordre croissant et décroissant.
Mon tableau fait appel à 2 tables différentes et il y a en tout 6 colonnes.
Étant débutant, je suis complètement perdu. Est ce quelqu'un de plus expérimenté pourrait m'aider ?
Merci ^^

Reply

Marsh Posté le 29-03-2012 à 10:36:51   

Reply

Marsh Posté le 30-03-2012 à 15:10:13    

Sur les entêtes des colonnes (au passage, faut utiliser <th> au lien de <td> quand une cellule est un entête de tableau), tu rajouter un appel à une fonction javascript qui va renseigner dans un champ caché en mettant une valeur indiquant la colonne de tri et l'ordre de tri (perso, pour mon appli de help-desk Astres, j'ai mis un n° de colonne et un signe, positif pour ASC, négatif pour DESC) et qui postes le formulaire (ou procède au tri via ajax, en appelant un script php).
 
Le script php chargé de l'affichage du tableau récupère la valeur du champ caché et renseigne la clause ORDER BY de ta requête SQL en conséquence ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 02-04-2012 à 15:56:14    

Ou plus simplement si ton tableau n'a pas énormément de résultat tu peux utilisé :
 
http://tablesorter.com/docs/
 
C'est un plugins du framework jQuery qui permet de faire des tris sur un tableau générer sans refaire les requêtes SQL.
 
A partir de 3000 résultats il peut lagué sur certain navigateur.

Reply

Marsh Posté le 02-04-2012 à 16:05:28    

Mais je doute que ça fonctionne avec un tableau paginé :/ Avec ma solution et en ayant bien tuné le SGBD, la requête oro probablement été mise en cache, y'aura que le order by qui changera, le temps de relancer cette requête devrait être bien plus court que la première...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 02-04-2012 à 16:22:30    

Il gère la pagination avec son Companion plugins
 
http://tablesorter.com/docs/example-pager.html
 
La version que je fournie est la plus simple et la plus rapide à mettre en place. Ensuite la meilleure solution est de mettre en place des requêtes qui gère LIMIT / OFFSET / ORDER BY.

Reply

Marsh Posté le 02-04-2012 à 16:24:42    

ok, c'est bon à savoir, merci :)
 
Edit : du coup, ta lib reviens au même, en terme de fonctionnement,que la solution que je proposais, y'a juste l'implémentation qui change...


Message édité par rufo le 02-04-2012 à 16:25:56

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed