2011-01-11 11 views
0

ユーザーは価格、距離、関連性などで結果やリストを並べ替えることができるシステムをどのように設定しますか?あなたがビュー、関連性、または他のオプションでソートできるYouTube上のようなもの。並べ替えのリスト、検索結果など

+0

このようなシステムのどの部分に興味があるのか​​、具体的にお答えください。そうでなければ、あなたの質問はかなり一般的です。ありがとう。 – polarblau

+1

jquery tablesorterプラグインを使用しています。http://tablesorter.com/docs/ –

答えて

1

1)結果の100%が同じページに表示されている場合は、クライアントサイドコード(HTML + JavaScript)でこれを行うことができます。これを行うにはいくつかの方法があります。あなたの質問は広すぎるので、私があなたに与えることができるこのアプローチに関する最良のアドバイスは、Googleの "html sortable table"や "javascript sortable table"です。

最も一般的なアプローチは、再ソートされた配列を生成するJSソートルーチンであるデータ構造(JSON配列など)にテーブルデータを格納することです。再ソートされた配列の内容で表のセルの内容を取り込むJSサブルーチンがあります。元のJSON配列は、バックエンドPHPスクリプトによってページに印刷されます。

純粋なJSだけでなく、YUIとjQueryの両方で、これを行うための既存のJSスクリプト/ライブラリがあります。


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変数を含むページの1つになります。この変数は、SELECTクエリで使用され、ORDER BYオプションを使用してSQLを再出力する前にデータを並べ替えることができます。

関連する問題