在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方法。由于这是一个下载,重定向不会使您离开页面,因此您可以使用此方法而不会混淆用户