我正在使用php和apache服务器。我的应用程序从用户那里收集数据,将其放入数据库中,然后使用 PDFLib 将格式化的数据显示为 pdf。我的问题是,我希望 pdf 显示为新页面,这有效。但是,我还留下了一个空白页面,其中包含包含用于显示 pdf 的变量的 URL。我希望此页面以 HTML 格式显示不同的摘要页面,而 URL 中没有变量,但我不知道该怎么做。在下面的代码中,如果医疗标志为假,我将转到摘要页面。如果医疗标志是真的,我想去两个页面。这可能吗?
if($medical_flag) {
header("Location: {$_SERVER['PHP_SELF']}/./index.php?step=wc_pdf&id={$event_id}");
} else {
header("Location: {$_SERVER['PHP_SELF']}?step=success&id={$event_id}");
}
exit;
好的,我知道这是不可能的,但我仍然没有弄清楚如何解决问题。我想我可以在jQuery上用这样的东西来扔回PDF的打开:
jQuery(document).ready(function ()
{
function display_pdf_page(data, textStatus) {
var current_record = data || {};
//somehow display the pdf now
}
function show_pdf(eventid){
jQuery.getJSON(
'./inc/get_current_record_data_json.php',
{'id': eventid},
display_pdf_page
);
}
...
});
然后在我用 php 处理数据后,使用以下方法"调用"上述内容:
echo '<script type="text/javascript">'
, 'show_pdf($event_id);'
, '</script>';
但这也行不通,php 不知道在哪里可以找到show_pdf。我对客户端/服务器端事件缺乏了解在这里杀死了我。叫钝...我不明白。
此解决方案无法按设计工作。
首先,如果要隐藏数据,则应切换到POST
而不是GET
。这样,数据将包含在 HTTP 有效负载中,而不是 URI 中。
其次,您应该包含用于javascript的隐藏iframe,以访问为其生成PDF的页面。成功执行 AJAX 调用(或使用的任何方法)后,可以将页面重定向到所需的目标。
正如sixeightzero所建议的那样,在这种情况下应该使用POST而不是GET。
但是,也许您可以通过跨越窗口的大iframe
(100% 宽度和高度)来实现所需的效果?