Javascript运行php文件然后下载文件

时间:2016-05-19 15:16:44

标签: javascript php forms

我有一个页面,我希望表单完成,javascript文件验证信息,将信息发送到php文件发送给我,然后启动下载。 问题是我可以让javascript文件发送邮件或允许下载文件,但不能同时下载。

有问题的代码如下:

else {
document.dlform7.action = "http://www.myurl.com/c/post7.php" ;
document.dlform7.submit();
window.location.assign(url);
}

是否有办法(可能使用加载)我可以同时进行这两项操作?

编辑:

ajax选项:

 else {
 $.ajax({
    url: "http://www.myurl.com/c/post7.php";
    type: "POST",
    data: data,     
    cache: false,
    success: function () {              
        window.location.assign(url);
        document.dlform7.submit();                   

        },  

1 个答案:

答案 0 :(得分:2)

我认为您需要调整表单的提交处理程序。 IRC,提交事件将导致页面重新加载。

您将需要为表单创建一个提交事件处理程序,该处理程序将对您的php脚本进行ajax调用。然后让它返回false以防止页面重新加载。然后,您应该能够同时下载文件。

<强>更新

如果您想下载文件,无论php脚本发生什么情况发送电子邮件,您都可以执行以下操作:

else {
 $.ajax({
    url: "http://www.myurl.com/c/post7.php";
    type: "POST",
    data: $(document.dlform7).serialize(),     
    cache: false,
  });
  window.location.assign(url);

ajax方法是表单提交。它不会破坏您的代码流,因此重定向将在请求后发生。 (我很确定这会奏效。)

如果您想等到php脚本成功运行,那么您可以将代码移动到成功回调中,如下所示:

else {
 $.ajax({
    url: "http://www.myurl.com/c/post7.php",
    type: "POST",
    data: $(document.dlform7).serialize(),     
    cache: false,
    success: function () { window.location.assign(url); }
  });

当然,您也可以更改php页面以发送电子邮件,然后在评论中回复您要下载的文件。