2011-01-11 145 views
0

如何設置一個系統,用戶可以按價格,距離,相關性等對結果或列表進行排序...?比如在YouTube上,您可以通過視圖,相關性或其他選項進行排序。排序列表,搜索結果等

+0

您能更具體地瞭解您感興趣的系統的哪一部分?否則你的問題是非常通用的。謝謝。 – polarblau 2011-01-11 23:20:55

回答

1

1)如果100%的結果顯示在同一頁面上,可以在客戶端代碼(HTML + JavaScript)中執行此操作。有幾種方法可以做到這一點。你的問題太廣泛了,所以我可以給你的這個方法的最好建議是Google「可排序表格」和/或「JavaScript可排序表格」。

最常見的方法是將表格數據存儲在數據結構(例如JSON數組)中,用於生成重新排序的數組的JS排序例程;並有一個JS子例程,它用重新排序的數組內容填充表格單元格內容。原始JSON數組通過後端PHP腳本打印到頁面中。

現在有一些JS腳本/庫可以爲你做這件事,既包括純JS,也包括YUI和jQuery。


2)否則,你可以做到這一點的後端,並重新排序提交請求與參數「排序依據是什麼」,用生成的HTML已經包含這是預分類表數據在你的PHP腳本中(甚至在PHP腳本獲得數據之前進行數據庫查詢)。該算法(不是寫在PHP :)

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

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

然後,你的HTML表有頭它們在

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

形式鏈接,您將有一個結果表在每列(或其他地方)的頂部有一個鏈接。該鏈接將是您所在的頁面的一個,並在URL中添加一個添加的$_GET變量。該變量可用於SELECT查詢,該查詢將使用SQL中的ORDER BY選項爲您排序數據,然後再次輸出它。