我有一个页面,我希望表单完成,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();
},
答案 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页面以发送电子邮件,然后在评论中回复您要下载的文件。