2011-01-11 7 views
0

Comment configurer un système où les utilisateurs peuvent trier les résultats ou les listes par prix, distance, pertinence, etc ...? Comme sur YouTube où vous pouvez trier par vues, la pertinence ou d'autres options.listes de tri, résultats de recherche, etc

+0

Pourriez-vous être plus précis sur la partie d'un tel système qui vous intéresse? Sinon, votre question est assez générique. Merci. – polarblau

+1

j'utilise le plugin jquery tablesorter, moi-même http://tablesorter.com/docs/ –

Répondre

1

1) Si 100% des résultats sont affichés sur la même page, vous pouvez le faire dans le code côté client (HTML + JavaScript). Il y a plusieurs moyens de le faire. Votre question est trop large, donc le meilleur conseil que je peux vous donner sur cette approche est Google "table triable html" et/ou "table triable javascript". L'approche la plus courante consiste à stocker les données de table dans une structure de données (par exemple une matrice JSON), une routine de tri JS pour produire une matrice re-triée; et avoir un sous-programme JS qui remplit le contenu des cellules du tableau avec le contenu du tableau re-trié. Le tableau JSON d'origine est imprimé dans la page par le script PHP backend.

Il existe des scripts/bibliothèques JS pour cela, à la fois pour JS pur, ainsi que pour YUI et jQuery.


2) Dans le cas contraire, vous pouvez le faire sur le back-end, et re-tri présente une demande avec « ce qu'il faut trier par » paramètre, avec le résultat HTML contenant déjà des données de table qui a été pré-trié dans votre script PHP (ou même la requête de la base de données avant que le script PHP ait obtenu les données). L'algorithme est (non écrit en PHP :)

order_by = get_CGI_parameter("order_by"); 
data_array = retrieve_data(order_by); 
execute_view_code(data_array); 

ou

data_array = retrieve_data(); 
sorted_data_array = sort_data(data_array, order_by); 
execute_view_code(sorted_data_array); 

Ensuite, votre table HTML sur les en-têtes qui sont des liens sous forme de

<A HREF="/your/cgi/script.php?order_by=column_name1">column_name1</A> 
0

Vous auriez un tableau des résultats avec un lien en haut de chaque colonne (ou ailleurs). Le lien serait un vers la page où vous vous trouvez avec une variable $_GET ajoutée à l'URL. Cette variable pourrait être utilisée dans une requête SELECT qui utiliserait l'option ORDER BY dans SQL pour trier les données avant que vous ne les reproduisiez à nouveau.