在过去的几周里,我一直在使用 CodeIgniter 作为框架开发一个网站。我一直在考虑完成某事的最佳方式,在其他语言的许多其他框架中,这相对简单:可排序表。CodeIgniter 默认关闭查询字符串,因为您的 URL 包含方法参数。因此 URL 可能如下所示:
/controller/method/param1/param2
您可能认为您可以将sortBy
和sortOrder
作为两个附加参数添加到控制器方法中。我不是特别想这样做,主要是因为我想要一个可重复使用的控制器。当您使用查询字符串参数时,PHP 可以很容易地告诉您是否有一个名为sortBy
. 但是,当您使用基于 URL 的参数时,它会因每个控制器而异。
我想知道我的选择是什么。据我所见,它们类似于:
- 传入我的
sortBy
和sortOrder
参数,把它吸起来,然后为它开发一些不可重用的组件。 - 有一个额外的控制器,它将
sortBy
和存储sortOrder
在会话中(尽管它必须知道您来自哪里,并将您送回原始页面)。 - 有某种 AJAX 函数,它会调用上面的控制器;然后重新加载页面。
- 破解 CodeIgniter 以重新打开查询字符串。实际上,如果这是唯一的选择,那么任何有关如何执行此操作的链接都将不胜感激。
我简直不敢相信这么简单的任务会出现这样的问题!我错过了什么吗?有人有什么建议吗?
虽然我喜欢 jQuery,并且我已经在网站上使用它,但 TableSorter 是一个不错的选择。但是,我想做服务器端排序,因为有些页面可能有大量结果,包括分页。