php tp5 $.ajax $.post方法点击生成excel文件,不用$.ajax用a标签实现导出订单。

该博客介绍了一个不使用$.ajax或$.post方法,而是通过a标签打开新窗口url来实现订单导出的方法。在用户鼠标悬停导出按钮时,动态添加查询参数到href属性中,然后在后台PHP接收参数并生成Excel文件进行下载。代码包括HTML、JS和PHP部分,已验证可正常工作。
摘要由CSDN通过智能技术生成

昨天有一个需求,导出订单,实现方法,不用$.ajax或$.post方法实现,改成a标签打开新窗口url实现。

html代码:

<a class="d_btn exportorder" target="_blank" href="{:url('exportorder')}">导出订单</a>

js代码:

    //导出订单时前
    $(".exportorder").hover(function () {
        var start_time = $("input[name='start_time']").val()
        var end_time = $("input[name='end_time']").val()
        var search_word = $("input[name='search_word']").val()
        var url = $(this).attr("href")
        if(url.indexOf("?") != -1){
            //有参数
            url = url.substr(0,url.indexOf("?"))
        }
        $(this).attr("href", url + "?search_word=" + search_word + "&start_time=" + start_time + "&end_time=" + end_time)
    })

php代码:

    //导出优选券订单
    public function exportorder(){
        $request = Request::instance();
        $data = $request->param();
        $where = [];
        if(!empty($data["search_word"])){
            $where += ["user_name | user_phone | user_address" => ["LIKE", '%' . $data["search_word"] .'%']];
        }
        $result = Db::table("...")
            ...这里省略
            ->select();
        $xlsTitle = iconv('utf-8', 'gbk', '订单'); // 文件名称
        $fileName = $xlsTitle . date('_YmdHis'); // $xlsTitle 文件名称可根据自己情况设定
        $PHPExcel = new PHPExcel(); //实例化PHPExcel类,类似于在桌面上新建一个Excel表格
        $PHPSheet = $PHPExcel->getActiveSheet(); //获得当前活动sheet的操作对象
        $PHPSheet->setTitle('cheke'); //给当前活动sheet设置名称
        $PHPSheet->setCellValue('A1', '编号')->setCellValue('B1', '名称')->setCellValue('C1', '收货人姓名')->setCellValue('D1', '收货人电话')->setCellValue('E1', '省')->setCellValue('F1', '市')->setCellValue('G1', '区')->setCellValue('H1', '收货人地址')->setCellValue('I1', '快递单号')->setCellValue('J1', '下单时间');
        $sum = 2;
        foreach ($result as $key => $value) {
            $PHPSheet->setCellValue('A' . $sum, $value['card_id'])->setCellValue('B' . $sum, $value['cn_name'])->setCellValue('C' . $sum, $value['user_name'])->setCellValue('D' . $sum, $value['user_phone'])->setCellValue('E' . $sum, $value['user_province_cn'])->setCellValue('F' . $sum, $value['user_city_cn'])->setCellValue('G' . $sum, $value['user_district_cn'])->setCellValue('H' . $sum, $value['user_address'])->setCellValue('I' . $sum, $value['express_number'])->setCellValue('J' . $sum, $value['create_time']);
            $sum++;
        };
        $PHPExcel->setActiveSheetIndex(0);
        $PHPExcel->getActiveSheet()->setTitle("订单");
        header('Cache-Control: max-age=0');
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition:attachment;filename=$fileName.xls");
        $PHPExcel = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5');
        ob_end_clean();
        $PHPExcel->save('php://output');
        exit;
    }

以上代码自己测试,可以使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值