我正在使用php和apache服务器。我的应用程序从用户收集数据,将其放入数据库,然后使用PDFLib将格式化数据作为pdf显示给用户。我的问题是,我希望pdf显示为新页面,这是有效的。但是,我还有一个空白页面,其中包含用于显示pdf的变量的URL。我希望此页面以HTML格式显示不同的摘要页面,而不包含URL中的变量,但我不知道该怎么做。在下面的代码中,如果医疗标志为false,我将转到摘要页面。如果医疗标志是真的,我想要去两页。这可能吗?
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。我对客户端/服务器端事件缺乏了解,这让我很伤心。呼叫是迟钝的...我不明白。
答案 0 :(得分:2)
此解决方案无法按设计工作。
首先,如果要隐藏数据,则应切换为POST
而不是GET
。这样,数据就包含在HTTP有效负载中而不是URI中。
其次,您应该为javascript包含一个隐藏的iframe,以访问生成PDF的页面。成功执行AJAX调用(或您使用的任何方法)后,您可以将页面重定向到所需的目标位置。
答案 1 :(得分:1)
正如sixeightzero所建议的那样,在这种情况下应该使用POST而不是GET。
然而,也许你可以用一个大的iframe
窗户(100%的宽度和高度)来达到预期的效果?