【问题标题】:sort listings, search results, etc排序列表、搜索结果等
【发布时间】:2011-01-12 08:01:36
【问题描述】:

您如何设置一个系统,让用户可以按价格、距离、相关性等...对结果或列表进行排序?例如在 YouTube 上,您可以按观看次数、相关性或其他选项进行排序。

【问题讨论】:

  • 您能否更具体地说明您对此类系统的哪个部分感兴趣?否则你的问题很笼统。谢谢。
  • 我使用jquery tablesorter插件,我自己tablesorter.com/docs

标签: php javascript html


【解决方案1】:

1) 如果 100% 的结果显示在同一页面上,您可以在客户端代码 (HTML+JavaScript) 中执行此操作。有几种方法可以做到这一点。你的问题太宽泛了,所以我能给你的这种方法的最佳建议是谷歌“html sortable table”和/或“javascript sortable table”。

最常见的做法是将表格数据存储在一个数据结构中(例如JSON数组),一个JS排序例程产生重新排序的数组;并有一个 JS 子例程,它用重新排序的数组的内容填充表格单元格的内容。后端 PHP 脚本将原始 JSON 数组打印到页面中。

现有的 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>

【讨论】:

    【解决方案2】:

    您将有一个结果表,每列顶部(或其他位置)都有一个链接。该链接将是指向您所在页面的链接,其中添加了一个添加到 URL 的 $_GET 变量。此变量可用于 SELECT 查询,该查询将使用 SQL 中的 ORDER BY 选项在您再次输出数据之前为您排序数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 2015-12-31
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      相关资源
      最近更新 更多