嗨,我有大部分代码,但缺少文件的“弹出”,所以我正在寻求帮助。
功能是这样的:用户填写报告表格,报告显示在屏幕上,用户有一个带有最终选项的按钮,可以单击它以 xls 格式下载报告并将其保存在本地。
我已将 xls 添加为 php,以便可以<table><tr><td></td><tr></table>
返回电子表格
AddType application/x-httpd-php .xls
这在许多情况下是相当危险的,但在我的情况下,这是必不可少的(“电子表格”在内存中太大而无法以 HTML 伪格式以外的任何其他方式发送)所以即使这给用户一个“你确定”在 excel这是迄今为止最不坏的选择。
好吧,撇开题外话不谈,我希望将数据jQuery
按钮post
放到 a 中response.xls
,然后像链接一样“下载”文件,这实际上比我想象的要难。另一种选择是把整个事情都串起来,但这对我来说太不雅了。
这是我到目前为止所拥有的。
<button id="download">Download As Excel</button>
<script type="text/javascript">
$(document).ready(function () {
$('#download').button();
$('#download').click(function(){
$.post("response.xls",
$("form#sendform").serialize(),
function(data){
alert(data);
var win=window.open('about:blank');
with(win.document) {
open();
write(data);
close();
}
}
);
return false;
});
});
</script>
关键部分是,这是通过重新序列化用户已经选择的预先存在的选项来实现的。它有效:但它在弹出窗口中将文件打开为“html” - 这是错误的,我需要它来下载它,就好像它是一个链接一样。
任何想法都将受到欢迎。请注意,我经常使用这个技巧,但它始终是一个没有参数的静态 xls 文件(字面意思是<a href=\"report.xls\">Main Report</a>
) - 所以这是明显不同的