我该怎么做表排序用笨?
-
02-07-2019 - |
题
我一直在开发一个网站在过去的几个星期使用的笨作的框架。我已经想好的方式来完成的东西,这在很多其他的框架中的其他语言比较简单:排序表。笨关闭查询串通过默认,因为你的网址含有方法的参数。所以URL可能看起来像:
/controller/method/param1/param2
你可能会认为你可能只是增加在 sortBy
和 sortOrder
作为两个附加参数的控制方法。我特别不希望做到这一点,主要是因为我想要有一个可重复使用的控制器。当你使用的查询串的参数,PHP可以轻松地告诉你是否存在是一个参数所谓 sortBy
.但是,当你使用URL基础的参数,它将随着每个控制器。
我想知道什么我的选择。尽我所能看到他们都是这样的:
- 通过在我
sortBy
和sortOrder
参数,只是吸它,并制定一些不可再用的部件。 - 有一个额外的控制,这将储存
sortBy
和sortOrder
在该届会议(虽然它会知道你从哪里来,并把你送回原来的页)。 - 有一些阿贾克斯功能,这将呼叫控制器上;然后重新载入页面。
- 哈克笨到把查询串回。实际上,如果这是唯一的选择,任何链接如何做到这一点,将不胜感激。
我只是不能太相信这样一个简单的任务将本这样一个问题!我失去了一些东西?没有任何人有任何建议?
编辑用的澄清:我爱jQuery,我已经在使用它的网站上,所以TableSorter是一个好的选择。然而,我想做服务器的端排序因为有一些页面具有潜在的大量结果,包括分页。
解决方案
我已经用这种方法:http://codeigniter.com/forums/viewthread/45709/#217816
我还扩大了它设置cookie根据关的排序,因此当有人回来的表格进行排序相同。
其他提示
如果你确定与排序在客户端, 该Tablesorter插件。 是漂亮的好。
我跑进这个有一个相当复杂的表格。困难的部分是,该表格可能增长/缩小取决于某些变量!!大痛苦:(
这里就是我怎么处理它。
调整system/application/config/config.php 允许逗号角在URI:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-,';
调整一下我控制与排序功能:
function sorter() {
//get the sort params
$sort = explode(",",$this->uri->segment(3)); //the 3rd segment is the column/order
//pass the params to the model
$data = $this->model_name->get_the_data($sort[0],$sort[1]);
$this->_show($data);
}
function _show($data) {
//all the code for displaying your table
}
我已经过于简单,但是你的想法。目的是为了有一个网址像这样:
/控制/分拣/列名,排序次序
分选机的功能的电话另一个内部的功能来处理显示/template/视图的逻辑-这工作就是处理分类通话,并获得适当的数据模型。
当然,这可以减少到仅仅是你当前功能:
function showGrid() {
$sort = $this->uri->segment(3);
if ($sort) {
//get the data sorted
} else {
//get the data the default way
}
//rest of your view logic
}
这样,你甚至不需要一个单独的功能和可以使用第三段定义的排序。
我已经使用这样的: http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-displaying-sorting-tabular-data/
从net.tutsplus.com
不幸的是它使用的是什么你不喜欢(/控制/方式/param1/param2)但是我已经加入这种(所显示的功能)对于每一个控制器,当我需要分页。或者做帮手。
其他例子是: http://www.robertmullaney.com/2010/09/19/tablerecord-sorting-made-easier-for-codeigniter/
我最近加入这个 表分类机 (使用原型)来一堆我的网页。它的快速和非常容易实现。