在提交时打开thankyou.html +下载PDF

时间:2012-09-11 12:51:21

标签: php javascript

我有一个简单的下载表单,在提交时我希望用户能够下载PDF并在同一时间打开感谢页面。

我尝试使用window.open以及几种PHP方法(标题)。虽然PHP方法正在弹出下载pdf屏幕,但页面没有重定向到感谢页面。

任何人都可以使用JS或PHP帮助吗?

我对任何一个都不是那么精明 - 如果你能分享整个代码,我将非常感激。谢谢! :)

4 个答案:

答案 0 :(得分:2)

最好的方法是正常打开thankyou表单,然后暂停(使用setTimeout),使用window.open("url", "_blank")打开PDF下载。

答案 1 :(得分:1)

您需要3个文件:

  1. 您的文件与表单页面具有:
    <form action="thanks.php" id="form" method="POST"><!-- your form content and a submit button here--></form>

  2. thanks.php 页面,其中包含:
    <iframe src="download_pdf.php" style="display:none;" />

  3. 最后创建 download_pdf.php 页面:
  4. <?php
     $file = 'filename.pdf';
     if(!file){
         die('Error: file not found');
     }else{
         header("Cache-Control: public");
         header("Content-Description: File Transfer");
         header("Content-Disposition: attachment; filename=$file");
         header("Content-Type: application/pdf");
         header("Content-Transfer-Encoding: binary");
         readfile($file);
     }
     ?>
    

答案 2 :(得分:0)

在将任何其他内容发送到浏览器之前,您只能使用header()进行PHP重定向。页面加载后,您将需要使用JS。这对JS来说很简单:

window.location = "http://example.com";

但是,我会问一次加载两个窗口。显示“谢谢”页面可能更容易,并提供可在该页面上查看/下载PDF的链接。

答案 3 :(得分:0)

实际上,用户不应该重复使用感谢页面网址重复下载pdf,这将首先取消获取用户信息的目的。因此,在您可以显示下载的感谢页面中需要超时。但请检查一下你是否可以通过弹出窗口以某种方式掩盖thankyou页面的URL。