【问题标题】:exporting a csv file in PHP and JavaScript用 PHP 和 JavaScript 导出 csv 文件
【发布时间】:2012-08-12 04:57:04
【问题描述】:

我正在尝试实现一个工具,将研究网站中的数据导出为csv 文件。在我的download 控制器中,我有:

public function export(){
    $data = array(
          array('Name', 'Age', 'City'),
          array('Philippe', '23', 'Palo Alto'),
          array('John', '30', 'San Francisco'),
          array('Paul', '20', 'Los Angeles')
    );

    header('Content-type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=data.csv');

    $fp = fopen('php://output', 'w');
    foreach( $data as $line ) {
        fputcsv( $fp, $line );
    }
    fclose($fp);
}

从我的view,我愿意:

function download() {
     $('#download').empty().html('<img src="<?php echo base_url();?>/images/loader.gif" />');
     $.post('<?php echo base_url();?>/index.php/download/export');
}

当用户单击带有onclick='download()' 的按钮时,会触发download()。 但是,我没有看到正在下载的文件,也没有看到错误消息。当我查看我的 firebug 控制台时,我看到:

200 OK 29ms jquery.min.js(第 4 行)HeadersPostResponseCookies

姓名、年龄、城市 Philippe、23、"Palo Alto" John、30、"San Francisco" 保罗,20,“洛杉矶”

我错过了什么? 谢谢

【问题讨论】:

    标签: php javascript codeigniter


    【解决方案1】:

    您实际上并不需要 AJAX 请求。您想将用户重定向到文件:

    window.location = '<?php echo base_url();?>/index.php/download/export';
    

    AJAX 请求告诉服务器将数据发送回脚本的成功方法。由于是下载,重定向不会让您离开页面,因此您可以使用此方法而不会混淆您的用户。

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      相关资源
      最近更新 更多