使用PHP + Jquery导出到XLS时出现问题

时间:2011-04-15 11:00:21

标签: php jquery export-to-excel

我正在尝试从MySQL数据中导出一些用PHP生成的表。我正在尝试通过AJAX将信息发送到包含以下代码的文件:

<?php
header("Content-type: application/vnd.ms-excel; name='excel'");  
header("Content-Disposition: filename=excel.xls");  
header("Pragma: no-cache");  
header("Expires: 0");  
echo $_POST['table'];
?>

数据来自此功能

function export_excel (id_table) {
    var table =  $("#" + id_table).html();
    $.ajax({
            type: 'POST',
            url: 'toexcel.php',
            data: 'table='+table
        });
}

通过Firebug我可以看到表格被正确回显,但它没有开始任何下载。哪个可能是问题?

1 个答案:

答案 0 :(得分:2)

无法启动文件下载作为对Ajax请求的响应。您必须发送浏览器才能获取资源,就像导航到某个页面一样。

如果您需要使用POST方法,我认为理想的方法是:

  • 有一个真正的<form>元素,您可以在其中编写POST数据

  • 有一个隐形或小iframe。给它起个名字

  • 将表单作为target属性

  • 的iframe名称
  • submit()表格

如果所有标头都设置正确(您可能需要添加更多标头,例如Content-disposition: attachment),则应触发文件下载而不会影响当前页面。

如果您可以使用GET,那就简单

location.href="toexcel.php?param1=value1&param2=value2"

应该已经。