使用锚标记提交表单以在新窗口中打开pdf

时间:2013-07-12 17:43:49

标签: php javascript forms jquery-mobile

我有一个JQM网站,在提交表单时生成pdf文件。所有这一切都运行正常,但我在iPhone上从主屏幕启动时,在新窗口中打开pdf(打开safari ..)时出现问题。
看来我不是唯一一个遇到此问题的人,但我还没有找到合适的解决方案。如果我链接到带有锚标签的静态pdf,我在safari中打开一个新窗口没有问题。我的结论是,如果我用一个anchortag提交我的表格,一切都会有效。 但是,当我尝试使用以下代码时,结果与我使用常规提交按钮发布表单的结果相同。

有人可以帮我解决另一个问题吗?或者可能调整它以使其有效?

这是我的表格:

 <form name="pdf" action="pdf_report1.php" data-ajax="false" target="_blank" id="pdf_report" method="POST">

<input type="hidden" name="customer_id" value="<?php echo $customer_id; ?>" >
<input type="hidden" name="date_from" value="<?php echo $date_from; ?>" >
<input type="hidden" name="date_to" value="<?php echo $date_to; ?>" >
<input type="hidden" name="user_id" value="<?php echo $user_id; ?>" >
<input type="hidden" name="maskin_id" value="<?php echo $maskin_id; ?>" >
<input type="hidden" name="akeri_id" value="<?php echo $akeri_id; ?>" >
<input type="hidden" name="littra_id" value="<?php echo $littra_id; ?>" >
<a href="javascript: document.getElementById('pdf_report').submit();" data-role="button">Create PDF</a>

</form>

3 个答案:

答案 0 :(得分:0)

请务必将这些内容放入pdf_report1.php

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');

答案 1 :(得分:0)

我对使用iPhone做的事情知之甚少,但添加target = '_blank'会强制它在空白标签或页面中打开,具体取决于该broswer的默认值。 EX:

<a href="javascript: document.getElementById('pdf_report').submit();" data-role="button" target="_blank">Create PDF</a>

答案 2 :(得分:0)

在调查此问题并且无法按照我希望使用表单解决问题之后,我采用了不同的方式。 我没有使用表单,只是简单地添加了URL中我需要的所有值,并使用目标页面上的get来提取它。也许不是最优雅的方式,但它适合我。 现在,当我从iPhone的主屏幕启动Web应用程序时,PDF将在safari的新窗口中打开。