Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP和JavaScript中导出csv文件_Php_Javascript_Codeigniter - Fatal编程技术网

在PHP和JavaScript中导出csv文件

在PHP和JavaScript中导出csv文件,php,javascript,codeigniter,Php,Javascript,Codeigniter,我正在尝试实现一个工具,将研究网站的数据导出为csv文件。在我的下载控制器中,我有: public function export(){ $data = array( array('Name', 'Age', 'City'), array('Philippe', '23', 'Palo Alto'), array('John', '30', 'San Francisco'), array('Paul', '2

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

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);
}
从我的
视图中
,我确实:

function download() {
     $('#download').empty().html('<img src="<?php echo base_url();?>/images/loader.gif" />');
     $.post('<?php echo base_url();?>/index.php/download/export');
}
函数下载(){
$(“#下载”).empty().html(“/images/loader.gif”/>”;
$.post('/index.php/download/export');
}
当用户单击带有
onclick='download()'
的按钮时,
download()
就会启动。 但是,我没有看到正在下载的文件,也没有看到错误消息。当我查看我的
firebug
控制台时,我看到:

200 OK 29ms jquery.min.js(第4行)标题PostResponseOkies

姓名、年龄、城市菲利普,23岁,“帕洛阿尔托”约翰,30岁,“旧金山” 保罗,20岁,“洛杉矶”

我错过了什么?
谢谢

您实际上不需要此处的AJAX请求。您希望使用以下命令将用户重定向到该文件:

window.location = '<?php echo base_url();?>/index.php/download/export';
window.location='/index.php/download/export';
AJAX请求告诉服务器将数据发送回脚本的success方法。由于这是一个下载,重定向不会使您离开页面,因此您可以使用此方法而不会混淆用户