PHP重定向到pdf然后导航到另一个页面?

时间:2012-08-13 16:22:56

标签: php redirect

我正在使用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。我对客户端/服务器端事件缺乏了解,这让我很伤心。呼叫是迟钝的...我不明白。

2 个答案:

答案 0 :(得分:2)

此解决方案无法按设计工作。

首先,如果要隐藏数据,则应切换为POST而不是GET。这样,数据就包含在HTTP有效负载中而不是URI中。

其次,您应该为javascript包含一个隐藏的iframe,以访问生成PDF的页面。成功执行AJAX调用(或您使用的任何方法)后,您可以将页面重定向到所需的目标位置。

答案 1 :(得分:1)

正如sixeightzero所建议的那样,在这种情况下应该使用POST而不是GET。

然而,也许你可以用一个大的iframe窗户(100%的宽度和高度)来达到预期的效果?