在分页的基础上,怎末实现按每列排序重新显示数据啊
请问下大家,用CI可以很好的实现分页,但是在分页实现的基础上,怎末实现点击某一列以后,表格会刷新一遍,并按照列属性重新排列显示呢?比如
序号 姓名 年龄
3 小明 14
4 小花 12
1 小强 15
2 小军 13
当点击“序号”后,表格刷新变成了
序号 姓名 年龄
1 小强 15
2 小军 13
3 小明 14
4 小花 12
当点击“年龄”后,表格刷新变成了
序号 姓名 年龄
4 小花 12
2 小军 13
3 小明 14
1 小强 15
同样,点击 姓名后,以后根据字符排序
请问大家有什么好的方法 可能需要传递不同的参数,我推荐扩展一下分页类,否则会很累。 谢谢啊,请问下,能否提供下例子参考下啊?刚开始学习CI,还不熟悉 目前没有和你功能一样的例子。 LZ问的是JS问题吧其实 我的做法是另外写一个分页方法,通过传参进行处理。 楼上的能否把你的代码贴出来看看,
我想的是这个问题只是涉及到一个order by的问题 再运用session来保存order_by信息就更完美了 本帖最后由 ouok 于 2009-10-18 22:11 编辑
写个数组遍历函数,传入需要排序的数组,排序的字段,排序的方式
/**
* 二维数据排序方法(冒泡方式)
* 本函数仅限于对二维数组中的数字字段进行排序
* by Firn hailingr@163.com
* @param array 需要排序的array $a
* @param string 需要排序的字段 $sort
* @param string 排序方式 $d=0默认为升序, $d=1为降序
* @return array
* @用法$afile = array2sort($afile,'time','d');
function array2sort($a,$sort='id',$d='asc')
{
$num=count($a);
if($d =='asc')
{
for($i=0;$i<$num;$i++)
{
for($j=0;$j<$num-1;$j++)
{
if($a[$j][$sort] > $a[$j+1][$sort])
{
foreach ($a[$j] as $key=>$temp)
{
$t=$a[$j+1][$key];
$a[$j+1][$key]=$a[$j][$key];
$a[$j][$key]=$t;
}
}
}
}
}else if($d=='desc'){
for($i=0;$i<$num;$i++)
{
for($j=0;$j<$num-1;$j++)
{
if($a[$j][$sort] < $a[$j+1][$sort])
{
foreach ($a[$j] as $key=>$temp)
{
$t=$a[$j+1][$key];
$a[$j+1][$key]=$a[$j][$key];
$a[$j][$key]=$t;
}
}
}
}
}
return $a;
}
我的做法是设定路径传参数, 设置两个 一个是分页的传参 另外一个是排序字段的传参数如图
希望有帮助
页:
[1]
2