我正在将直接创建的HTML表导出到excel。我可以通过直接访问URL来做到这一点。但是,单击按钮和Ajax不起作用。
试用1:
我创建了一个伪表,并将其保存在一个变量中。
function export_accounting(){
//$test = "'".$this->input->post('table')."'";
$test = '<table class="table table-striped table-bordered"><thead><tr><th>Agent</th><th>Date</th><th>Invoice Number</th><th>Customer Name</th><th>Product Code</th><th>Destination</th><th>Gross Amount</th><th>Commission</th><th>Discount</th><th>Net Amount</th></tr></thead><tbody><tr><td>LLC KALYE</td><td>2018-01-03</td><td>ADC049810</td><td>SY TU, MELISSA</td><td>ACBOX</td><td>LUZ</td><td class="text-right">48.80</td><td class="text-right">3.68</td><td class="text-right">0.00</td><td class="text-right">48.80</td></tr><tr><td> </td><td>2018-01-03</td><td>ADC049811</td><td>RAMIREZ, ELMER</td><td>ACBOX</td><td>LUZ</td><td class="text-right">229.50</td><td class="text-right">13.56</td><td class="text-right">0.00</td><td class="text-right">229.50</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><th scope="row" class="text-right">278.30</th><th scope="row" class="text-right">17.24</th><th scope="row" class="text-right">0.00</th><th scope="row" class="text-right">278.30</th></tr><tr><td>OFFICE ACCOUNT</td><td>2018-01-03</td><td>ADC050183</td><td>QUESEA, NELSON</td><td>ACBOX</td><td>LUZ</td><td class="text-right">24.95</td><td class="text-right">0.00</td><td class="text-right">0.00</td><td class="text-right">24.95</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><th scope="row" class="text-right">24.95</th><th scope="row" class="text-right">0.00</th><th scope="row" class="text-right">0.00</th><th scope="row" class="text-right">24.95</th></tr><tr><th scope="row" class="text-danger">GRAND TOTAL:</th><td></td><td></td><td></td><td></td><td></td><th scope="row" class="text-right text-danger">303.25</th><th scope="row" class="text-right text-danger">17.24</th><th scope="row" class="text-right text-danger">0.00</th><th scope="row" class="text-right text-danger">303.25</th></tr></tbody></table>';
//$file = $this->input->post('control_number').".xls";
$file = "test.xls";
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename="$file"");
header("Pragma: ");
header("Cache-Control: ");
echo $test;
}
当我直接访问URL时,这是有效的。
试用版2:
我使用Ajax并使导出函数中的变量成为动态的。因此,当我点击一个按钮时,它会转到URL并发送所需的数据。
$(document).on('click', 'button.export_report', function(){
var data = $('div#export_table').html();
var export_control_number = $(this).data('control_number');
$.ajax({
url: window.base_url+'mgtcomm/export_accounting',
data: {'table': data, 'control_number': export_control_number},
});
});
这不起作用。它只是回显数据,而不是导出。
试用版3:
我将导出按钮设置为提交按钮,并将伪数据放回以使其工作。
<form method="post" action="<?php echo base_url('mgtcomm/export_accounting');?>">
<div class="text-right"> <button class="btn btn-success export_report" type="submit">Export Report</button></div>
</form>
这不起作用。当我第一次访问URL时,它会给出mo 404错误。但当我重新加载URL时,它会下载文件。
我错过了什么?
我刚发布完这个问题就偶然发现了这个插件。这帮助我实现了我所需要的。
尝试在url中放入一个index.php
。
<form method="post" action="<?php echo base_url('index.php/mgtcomm/export_accounting');?>">