Codeigniter -使用 AJAX 下载CSV

bf1o4zei  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(154)

我在使用codeigniter下载CSV文件时遇到问题,我希望当用户按下导出按钮时,文件应该开始下载,但所发生的是在 AJAX 调用函数中生成响应,如屏幕截图所示。我知道我错过了一些小东西,但我不能让我的头直接在它上面做什么。

** AJAX 响应显示在FireFOX控制台中**

HTML按钮

<button id="exportData" name="exportData" class="btn btn-primary btn-lg" >Download CSV</button>

** AJAX 呼叫**

$(document).on('click','#exportData',function(e){
e.preventDefault();

var jawad = $( ".jawad" ).serialize();
$.ajax({
url         : '<?=base_url();?>command/getReport',
type        : 'POST',
data        :  {str:jawad,procName:$('#procName').val()}
});

});

PHP函数:

function getReport()
{ 
 //removing above lines as not necessary

$jawad =  $query->result_array();

//pass it to db utility function
$new_report = $this->dbutil->csv_from_result($query);

$this->load->helper('download');
force_download('csv_file.csv', $new_report);
}
hjqgdpho

hjqgdpho1#

要下载CSV文件,请使用 AJAX 发布值。

基本编码:

function getReport(){ 
    $FileName = date("d-m-y") . '.csv';
    $Content = "#ID, Mobile No \n";
    $Content .= "01, 0175162678 \n";
    $Content .= "02, 0165162678 \n";

    header('Content-Type: application/csv'); 
    header('Content-Disposition: attachment; filename="' . $FileName . '"'); 
    echo $Content;
}
r1zk6ea1

r1zk6ea12#

试试这个

$.ajax({
        url : '<?=base_url();?>command/getReport',
        type: 'POST',
        data:  {str:jawad,procName:$('#procName').val()}
      }).done(function($results) {
        document.location.href = '<?php echo site_url('command/getReport');?>';
      });

相关问题