3

私はphpとApacheサーバーを使用しています。私のアプリケーションは、ユーザーからデータを収集し、それをデータベースに入れ、PDFLib を使用してフォーマットされたデータをユーザーに pdf として表示します。私の問題は、pdfを新しいページとして表示したいのですが、これでうまくいきます。しかし、pdf を表示するために使用される変数を含む URL が残っている空白のページもあります。このページに、URL に変数を含めずに HTML で別の概要ページを表示したいのですが、その方法がわかりません。次のコードでは、医療フラグが false の場合に概要ページに移動します。私が望むのは、医療フラグが true の場合に両方のページに移動することです。これは可能ですか?

    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;

OK、これが不可能であることは理解していますが、問題を解決する方法はまだわかりません。次のような方法で、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の場所を知りません. クライアント/サーバー側のイベントに対する私の理解不足が、ここで私を殺しています。鈍感に電話してください... わかりません。

4

2 に答える 2

2

このソリューションは、設計どおりには機能しません。

まず、データを非表示にする場合は、POSTではなくに切り替える必要がありますGET。このようにして、データは URI ではなく HTTP ペイロードに含まれます。

次に、JavaScript が PDF を生成するページにアクセスするための非表示の iframe を含める必要があります。AJAX 呼び出し (または使用する方法) が正常に実行されると、ページを目的の宛先にリダイレクトできます。

于 2012-08-13T16:35:08.777 に答える
1

sixeightzero によって提案されているように、このような場合は GET の代わりに POST を使用する必要があります。

iframeただし、ウィンドウを大きく広げて (幅と高さを 100%)、目的の効果を達成できるでしょうか?

于 2012-08-13T16:42:38.780 に答える