过去几周我一直在使用CodeIgniter作为框架开发一个网站.我一直在考虑实现某些目标的最佳方法,在其他语言的许多其他框架中,它相对简单:可排序表.CodeIgniter默认关闭查询字符串,因为您的URL包含方法参数.所以URL可能如下所示:
/controller/method/param1/param2
您可能认为您可以添加sortBy
并sortOrder
作为控制器方法的两个附加参数.我并不特别想这样做,主要是因为我想拥有一个可重复使用的控制器.当您使用查询字符串参数时,PHP可以轻松地告诉您是否有一个名为的参数sortBy
.但是,当您使用基于URL的参数时,它将随每个控制器而变化.
我想知道我的选择是什么.据我所知,他们是这样的:
掠过我sortBy
和sortOrder
参数,只需吸起来,并制定一些低于可重用组件它.
有一个额外的控制器,它将存储sortBy
和sortOrder
在会话中(虽然它必须知道你来自哪里,并将您送回原始页面).
有某种AJAX功能,可以调用上面的控制器; 然后重新加载页面.
Hack CodeIgniter重新打开查询字符串.实际上,如果这是唯一的选择,任何指向如何做到这一点的链接将不胜感激.
我简直不敢相信这么简单的任务就会出现这样的问题!我错过了什么吗?有没有人有任何建议?
编辑澄清:我喜欢jQuery,我已经在网站上使用它,所以TableSorter是一个不错的选择.但是,我想进行服务器端排序,因为有些页面可能包含大量结果,包括分页.
我一直在使用这种方法:http: //codeigniter.com/forums/viewthread/45709/#217816
我还将它扩展为基于排序设置cookie,因此当有人回来时,表格的分类与之前相同.