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

Javascript run php file and then download file

本文关键字:文件 然后 下载 Javascript php 运行      更新时间:2023-09-26

我有一个页面,我希望在其中填写一个表单,一个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();                   
        },  

我认为您需要调整表单的提交处理程序。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页面以发送电子邮件,然后在评论中提到要下载的文件。