这个问题困扰了我很久,终于还是自己写JQUERY把它搞掂了,希望能对遇到同样问题的人有所帮助,好吧,下面就是源代码:
jquery code:
- $(function(){
- //_getIds方法就是获取已选的要导出的数据的ID,设了两个参数selectedIds--已选id的input名称,targetType-->碎片模式,默认是navTab,如果是dialog的自行修改
- function _getIds(selectedIds,targetType){
- var ids="";
- var $box=targetType=="dialog"?$.pdialog.getCurrent():navTab.getCurrentPanel();
- $box.find("input:checked").filter("[name='"+selectedIds+"']").each(function(i){
- var val=$(this).val();
- ids+=i==0?val:","+val;});
- return ids;
- }
- //导出excel的按钮 class=iconn,click时触发
- $(".iconn").click(
- function(){
- //因为这个方法直运用到导出到excel 所以这里所需的参数变量我直接写死了
- var targetType="navTab";
- var selectedIds="ids";
- var postType="string";//批量选择的话,以文本的形式获取
- var ids=_getIds(selectedIds,targetType);
- if(!ids){
- alertMsg.error($(".iconn").attr("warn"));
- return false;
- //alert("请选择要导出的数据!");
- }else{
- //将获取到的ids 传给后台处理
- window.open("__URL__/memberExport/ids/"+ids);
- }
- });
- });
PHP code:
- //member成员信息导出到excel
- public function memberExport(){
- $id=$_REQUEST['ids'];//获取已选数据的ID
- //echo $id;
- //在这里导出到excel我没有用到phpexcel,是自己写的,很简单,相信大家都明白是什么意思,根据自己需要自行修改就行了
- $filename=date('Y-m-d');
- header("Pragma:public");
- header("Expires:0");
- header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
- header("Content-Type:application/force-download");
- header("Content-Type:application/vnd.ms-execl;charset=gb2312");
- header("Content-Type:application/octet-stream");
- header("Content-Type:application/download");
- header('Content-Disposition:attachment;filename="'.$filename.'.xls"');
- header("Content-Transfer-Encoding:binary");
- if(!$id){
- $this->error('非法操作!');
- }else{
- $map['id']=array('in',$id);
- $title="用户名t 姓名t 部门t 职务t 身份证t 职称t 学历t 毕业时间t 录用时间";
- $title=iconv('utf-8','gbk',$title);
- echo $title;
- set_time_limit(0);
- $offset= 0;
- $length=100;
- $Member = M('Member');
- $list=$Member->where($map)->order('id desc')->select();
- if(!$list){
- $this->error('操作错误!');
- }else{
- foreach($list as $key=>$row){
- echo "n";
- echo iconv('utf-8','gbk',$row['username'])."t";
- echo iconv('utf-8','gbk',$row['name'])."t";
- echo iconv('utf-8','gbk',$row['department'])."t";
- echo iconv('utf-8','gbk',$row['zhiwu'])."t";
- echo iconv('utf-8','gbk',$row['sfz'])."t";
- echo iconv('utf-8','gbk',$row['zhicheng'])."t";
- echo iconv('utf-8','gbk',$row['xueli'])."t";
- echo iconv('utf-8','gbk',$row['bytime'])."t";
- echo iconv('utf-8','gbk',$row['lytime'])."t";
- }
- $offset+=$length;
- }
- }
- }