2012-08-13 3 views
3

나는 php와 아파치 서버를 사용하고있다. 내 응용 프로그램은 사용자로부터 데이터를 수집하고 데이터베이스에 저장 한 다음 PDFLib을 사용하여 형식이 지정된 데이터를 사용자에게 다시 PDF로 표시합니다. 내 문제는, 나는 pdf를 새로운 페이지로 표시하고 싶습니다. 이것은 작동합니다. 그러나 pdf를 표시하는 데 사용 된 변수가 들어있는 URL이있는 빈 페이지가 있습니다. 이 페이지에서 URL에 변수가없는 다른 요약 페이지를 HTML로 표시하고 싶습니다. 그러나 어떻게 해야할지 모르겠습니다. 다음에 나오는 코드에서 의학 플래그가 거짓이면 요약 페이지로갑니다. 의료 깃발이 사실이라면 나는 양쪽 페이지로 가고 싶습니다. 이것이 가능한가?PHP는 pdf로 리디렉션 한 다음 다른 페이지로 이동합니까?

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; 

그래,이게 어떻게 불가능한지 알지만, 아직도 문제를 해결하는 방법을 찾지 못했습니다. 내가 PHP에서 데이터를 처리 한 후 다음

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   
    );  
} 
    ... 
    }); 

사용하여 위의 "전화":

echo '<script type="text/javascript">' 
     , 'show_pdf($event_id);' 
     , '</script>'; 

을하지만 아무튼 나는 이런 식으로 뭔가에 다시 jQuery를에서 PDF의 개방을 던져 수 있다고 생각 't는 어느 쪽이든을 작동합니다, PHP는 show_pdf를 어디에서 찾을 지 알 수 없습니다. 클라이언트/서버 측 이벤트에 대한 이해가 부족하여 여기에서 나를 죽이고 있습니다. 무뚝뚝하게 부르십시오 ... 나는 그것을 얻지 않는다.

+2

이것은 불가능합니다. 브라우저를 파일과 웹 페이지에 동시에 보낼 수는 없습니다. 하나의 HTTP 요청, 하나의 HTTP 응답. 어떤 이유로 든 주소창에서 PDF의 URL을 숨길 필요가있는 경우 프레임 세트 중 하나가 PDF 생성기의 URL을 가리키는 프레임 세트 페이지로 리디렉션하십시오. –

+1

나는 아마 새 창에서 PDF를 열 때 팝업 창을 사용하기 위해 javascript를 사용합니다. 그런 다음 설명했던대로 주 사이트를 새 페이지로 리디렉션합니다. 또는 당신이 할 수있는 일은'php header (location :)'를 요약 한 새 페이지로, javascript는 pdf를위한 새로운 창으로 만드는 것입니다. –

+0

새 페이지에서 PDF를 표시하면 브라우저의 "기능"일뿐입니다. 한 요청을하고 두 가지 응답을받는 것이 아닙니다. – Crontab

답변

2

이 솔루션은 설계된대로 작동하지 않습니다.

먼저 데이터를 숨기려면 GET 대신 POST으로 전환해야합니다. 이렇게하면 데이터가 URI 대신 HTTP 페이로드에 포함됩니다.

두 번째로 자바 스크립트에 숨겨진 iframe을 포함시켜 PDF 생성 페이지에 액세스해야합니다. AJAX 호출 (또는 사용하는 모든 방법)이 성공적으로 실행되면 페이지를 원하는 대상으로 리디렉션 할 수 있습니다.

1

sixeightzero가 제안한대로 POST는 GET 대신 사용되어야합니다.

그러나 창문 (100 % 너비 및 높이)을 스팬하는 큰 iframe으로 원하는 효과를 얻을 수 있습니까?

관련 문제