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

Javascript运行php文件,然后下载该文件,javascript,php,forms,Javascript,Php,Forms,我有一个页面,我想在其中完成一个表单,一个javascript文件验证信息,将信息发送到一个php文件以将其发送给我,然后启动下载。 问题是,我可以让javascript文件发送邮件或允许下载文件,但不能两者兼而有之 所讨论的代码如下所示: else { document.dlform7.action = "http://www.myurl.com/c/post7.php" ; document.dlform7.submit(); window.location.assign(url); }

我有一个页面,我想在其中完成一个表单,一个javascript文件验证信息,将信息发送到一个php文件以将其发送给我,然后启动下载。 问题是,我可以让javascript文件发送邮件或允许下载文件,但不能两者兼而有之

所讨论的代码如下所示:

else {
document.dlform7.action = "http://www.myurl.com/c/post7.php" ;
document.dlform7.submit();
window.location.assign(url);
}
是否有一种方法(可能使用load)可以同时执行这两个操作

编辑:

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页面更改为发送电子邮件,然后回复评论中提到的要下载的文件。

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

首先将表单提交到php脚本,然后首先将表单提交到php脚本,然后使用onClick=“return checkvalues control(true);”提交表单在您发布的代码片段中,行
document.dlform7.submit()导致页面重新加载,从而导致代码不转到下一行。更改此行,使其调用异步提交(进行ajax调用)。你应该能够做你想要做的一切。那么我会把文件的下载放在ajax调用的success函数中吗?这取决于你想做什么。如果您希望文件下载仅在邮件成功时进行,则选择“是”。如果不管怎样都应该下载该文件,那么在ajax调用函数之后再下载它。这是正确的吗?我有时会在那里丢失吗?我使用onClick=“return checkvaluescocontrol(true);”从您发布的代码片段中,行
document.dlform7.submit()导致页面重新加载,从而导致代码不转到下一行。更改此行,使其调用异步提交(进行ajax调用)。你应该能够做你想要做的一切。那么我会把文件的下载放在ajax调用的success函数中吗?这取决于你想做什么。如果您希望文件下载仅在邮件成功时进行,则选择“是”。如果不管怎样都应该下载该文件,那么在ajax调用函数之后再下载它。这是正确的吗?我有时会想念那里吗?