我可以使用jquery / ajax将表单提交到返回文件的php脚本吗?

时间:2016-09-09 00:42:13

标签: javascript php jquery ajax

我有一个使用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似乎不起作用。有什么想法吗?

0 个答案:

没有答案