您好,欢迎访问一九零五行业门户网

PHP 报表排序及制作思路

报表排序实现原理
看到某宝、某猫上的排序,我试着照猫画虎,自己鼓捣一个。
原理记录如下:
1、前台部分

学号 姓名
2、css部分
.upsort:hover,.upsort{background:rgb(0,161,222) url(./css/up.png) no-repeat center right ; color:#fff; }.downsort:hover, .downsort{background:rgb(0,161,222) url(./css/down.png) no-repeat center right ; color:#fff; }
2、js部分
函数 sort_prog
var sortprog_flag = [0,0];var sortprog_col = ['sid','username']; //排序筛选 function sort_prog(num){ clear_arr(sortprog_flag,num); //更改显示标识 1升序 if(sortprog_flag[num] === 0 || sortprog_flag[num] === 2){ sortprog_flag[num] = 1; } 2 降序 否则不排序 else if(sortprog_flag[num] === 1){ sortprog_flag[num] = 2; } if(num >= 0){ var htmlcode = ''; $.ajax({ 'url':'./ajax.php', 'data':get_param('prog'), 'datatype':'text', 'type':'post', 'async':false, 'success':function(data){ if(data){ $('.curseload').hide(); htmlcode = data; } } }); $('.progreport').html(htmlcode); //更改显示标识 if(sortprog_flag[num] == 2){ $('.'+obj).addclass('downsort').removeclass('upsort'); } else if(sortprog_flag[num] == 1){ $('.'+obj).addclass('upsort').removeclass('downsort'); } $('.'+obj).siblings().removeclass('downsort').removeclass('upsort'); }else{ clear_arr(sortprog_flag,-1); $.ajax({ 'url':'./ajax.php', 'data':get_param('prog'), 'datatype':'text', 'type':'post', 'success':function(data){ if(data){ $('.prog').html(data); } } }); } } //数组清零 初始化 function clear_arr(arr, index){ var len = arr.length; for (var i= 0; i
3、php部分
class reportclass{ //按列排序 public function multi_array_sort($multi_array,$sort_key,$sort=sort_asc){ $sorttype = optional_param('sorttype', 1, param_raw); if($sorttype == 1){ $sort=sort_asc; }else if($sorttype == 2){ $sort=sort_desc; } if(is_array($multi_array)){ foreach ($multi_array as $row_array){ if(is_array($row_array)){ //将utf-8中文转换为 gbk 进行中文拼音排序 $key_array[] = iconv('utf-8', 'gbk', strip_tags($row_array[$sort_key])); }else{ return false; } } }else{ return false; } array_multisort($key_array,$sort,$multi_array); return $multi_array; } // public function print_report(){ $arr = get_report(); $sort_col = $_post['sort_col']; $sort_type = $_post['sort_type']; if($sort_type == 1){$sort = sort_asc ;} else if($sort_type == 2){$sort = sort_desc ;} $newarr = $this->multi_array_sort($arr,$sort_col,$sort); $this->show_report(); } //实现获取 报表信息二维数组 public function get_report(){} //根据二维数组 打印报表 public function show_report(){}}
代码并不完整,但是思路是完整的,欢迎不同见解者拍砖
然后附以下我个人做报表的思路图:
其它类似信息

推荐信息