HTML表单调用返回附件的PHP页面;如何将“控件”返回到HTML页面?

HTML表单调用返回附件的PHP页面;如何将“控件”返回到HTML页面?,php,html,Php,Html,全部, 我有一个包含表单的HTML页面 当用户完成表单并单击Submit时,表单将用户的输入发布到PHP页面 该PHP页面处理输入并将用户的结果作为附件返回 到目前为止-一切正常-用户单击提交,浏览器的进度条开始旋转,几秒钟后,附件下载 但是,在浏览器中,用户仍在表单页上。我没问题 这是我的问题。理想情况下,当用户单击Submit时,我希望更新表单页面,以指示流程正在进行中。例如: 禁用“提交”按钮以防止重复单击 显示下载消息和微调器类型图形 然后,当下载完成时,我希望捕获该事件,以便重新启用s

全部,

我有一个包含表单的HTML页面

当用户完成表单并单击Submit时,表单将用户的输入发布到PHP页面

该PHP页面处理输入并将用户的结果作为附件返回

到目前为止-一切正常-用户单击提交,浏览器的进度条开始旋转,几秒钟后,附件下载

但是,在浏览器中,用户仍在表单页上。我没问题

这是我的问题。理想情况下,当用户单击Submit时,我希望更新表单页面,以指示流程正在进行中。例如:

禁用“提交”按钮以防止重复单击 显示下载消息和微调器类型图形 然后,当下载完成时,我希望捕获该事件,以便重新启用submit按钮并删除下载消息

这可能吗

或者-我的初始设置是错误的吗?有更好的方法吗?也就是说-有一个调用PHP页面的表单,让PHP页面返回一个附件,然后将控制权返回到调用页面


提前感谢您的建议和见解

>P>我不确定在HTTP上会有任何关于下载/流文件的事件,考虑到它完全发生在服务器端,但是,如果我是你,我会将表单重定向到下载页面,然后在Web服务器开始将文件流到客户端的浏览器之后,我将再次重定向到表单页面。
您可以通过PHP和Javascript实现这一点:

>P>我不确定在HTTP上会有任何关于下载/流文件的事件,考虑到它完全发生在服务器端,但是,如果我是你,我会将表单重定向到下载页面,然后在Web服务器开始将文件流到客户端的浏览器之后,我将再次重定向到表单页面。
您可以通过PHP和Javascript实现这一点:

使用javascript在新窗口中打开下载。因此,不要在POST请求中返回下载内容,只需重新加载页面并在页面上添加一些javascript即可打开一个新窗口,该窗口将调用下载文件的PHP脚本。

使用javascript在新窗口中打开下载内容。因此,不要在POST请求中返回下载内容,只需重新加载页面并在页面上添加一些javascript即可打开一个新窗口,该窗口将调用下载文件的PHP脚本。

为了获得此类功能,请禁用submit按钮,显示微调器或进度条时,需要使用一些JavaScript。我推荐JQuery Ajax表单插件:

使用JS和AJAX的棘手之处在于,很难让用户将文件作为附件下载


要使用纯HTML和PHP,我建议在提交时重新定向到另一个页面,显示一些消息…处理。。。然后重定向回页面将加载的表单页面,提示下载,然后再次显示表单。

要获得此类功能,请禁用submit按钮,显示微调器或进度条,您需要使用一些JavaScript。我推荐JQuery Ajax表单插件:

使用JS和AJAX的棘手之处在于,很难让用户将文件作为附件下载


要使用纯HTML和PHP,我建议在提交时重新定向到另一个页面,显示一些消息…处理。。。然后重定向回页面将加载的表单页面,提示下载,然后再次显示表单。

处理此问题的一种优雅方式可能是通过ajax

a在最后一页上,当您按下Submit按钮时,您将ajax请求发布到

动态构建文档和/或生成要下载的链接 文件 在ajax响应中返回下载链接 b在ajax响应中,触发下载链接,例如

 //jquery code     
$.ajax ({...
        success:function(resp){
            window.open(resp.FILE);
            // to the rest of work here 
            // e.g enable disable submit button 
        })

处理这个问题的一种优雅方式可能是通过ajax

a在最后一页上,当您按下Submit按钮时,您将ajax请求发布到

动态构建文档和/或生成要下载的链接 文件 在ajax响应中返回下载链接 b在ajax响应中,触发下载链接,例如

 //jquery code     
$.ajax ({...
        success:function(resp){
            window.open(resp.FILE);
            // to the rest of work here 
            // e.g enable disable submit button 
        })