PHP 报表排序及制作思路
来源:互联网 发布:java接口压力测试工具 编辑:程序博客网 时间:2024/05/24 05:22
报表排序实现原理
2、CSS部分
2、js部分
函数 sort_prog
3、PHP部分
看到某宝、某猫上的排序,我试着照猫画虎,自己鼓捣一个。
原理记录如下:
1、前台部分
<table> <tr class="proghead"> <td class="canclick progsort1" onclick="sort_prog(0)">学号</td> <td class="canclick progsort2" onclick="sort_prog(1)">姓名</td> </tr></table>
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 < len; i++) { if(i != index){ arr[i] = 0; } } } //数组获取 点击索引 function get_index(arr){ var len = arr.length; var index = -1 ; for (var i = 0; i < len; i++) { if(arr[i] != 0){ index = i; } } return index; } //参数获取 //获取 参数 function get_param(type){ if(type == 'prog'){ var num = get_index(SORT_FLAG); var sid = $('.sid').val();var username = $('.username').val(); return {'sid':sid,'username':username,'sort_col':SORTPROG_COL[num],'sort_type':SORTPROG_FLAG[num]}; } }
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(){}}
代码并不完整,但是思路是完整的,欢迎不同见解者拍砖
然后附以下我个人做报表的思路图:
1 0
- PHP 报表排序及制作思路
- 报表制作工具Finereport:商业BI数据仓库的创建思路
- 使用PHP制作新闻系统的思路
- 现代PHP网站的制作思路
- 【php+mysql】博客分页制作思路
- “系统配置”模块-制作思路及流程
- servlet、报表制作及Java反射杂记
- 归并排序思路及算法实现
- 制作报表
- 报表制作
- 报表制作
- 报表制作
- 润乾报表实现组内排序报表及改进
- PHP Dispath的实现思路及代码
- php制作圆形用户头像,思路+自定义封装类源代码
- 利用Lucene制作搜索模块的思路及代码说明
- openstack镜像制作思路、指导及问题总结
- Javascript鼠标拖动面板的制作【思路及注意点】
- __attribute__
- android wifi 的开启,关闭,查询等。
- Android TCP 和 UDP
- QT中为生成的exe运行文件添加图标
- android service 用法
- PHP 报表排序及制作思路
- service bunder 下 Parcel 用法
- 电源管理芯片之 Regulator用法。
- SecureCRT home end 键更改
- java 链接服务器上的 mongodb 出现 connect time out 问题
- Finereport常见的数据集报错错误代码和解释
- git 命令
- android service传递并获取参数 之 transact
- 软件安装原理