3

我正在使用 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;

好的,我明白这是不可能的,但我仍然没有想出如何解决这个问题。我想我可以用这样的东西把 PDF 的开头扔回 jQuery:

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。我对客户端/服务器端事件缺乏了解,这让我很生气。叫钝...我不明白。

4

2 回答 2

2

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

首先,如果你想隐藏数据,你应该切换到POST而不是GET. 这样,数据将包含在 HTTP 有效负载中,而不是 URI。

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

于 2012-08-13T16:35:08.777 回答
1

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

但是,也许您可​​以通过大iframe跨度窗口(100% 宽度和高度)来实现所需的效果?

于 2012-08-13T16:42:38.780 回答