我有一个使用PHPExcel的PHP脚本。它生成一个xlsx文件供下载。但是,这需要相当长的时间,具体取决于用户选择的参数。我想知道我是否可以通过ajax提交参数,在提交后显示“加载”图像,但一旦文件完成,请返回文件进行下载。
这是我尝试过的,但它不起作用:
$(document).ready(function(e) {
$("#reporting-export-form").submit(function(e) {
$("#loadingImage").show();
var url = "reporting-export-download.php";
$.ajax({
type: "POST",
url: url,
data: $("#reporting-export-form").serialize(),
success: function(data)
{
return data;
$("#loadingImage").hide();
}
});
e.preventDefault();
});
});
更新 所以我认为这是有道理的,它无法完成。所以我有另一个想法,99%的工作和伪造ajax体验,但有一个小故障。我在页面上放了一个iframe。然后我将表单的目标设置为iframe。提交时,页面会保留在当前页面上,当PHPExcel文件完成时,它会显示要下载的文件。然后我将这个jQuery代码添加到我的页面中:
$("#reporting-export-form").submit(function(e) {
$("#loadingImage").show();
});
这也很有效。现在,我希望在下载或取消文件后隐藏加载图像。所以我将这段代码添加到输出文件的页面中:
$(document).ready(function(e){
$('#loadingImage', window.parent.document).hide();
});
这不起作用。如果我删除输出文件的PHP代码,那么它会在iframe加载后删除加载图像,但只要我尝试在iframe中输出php文件,javascript似乎不起作用。有什么想法吗?