2014-04-10 4 views
0

다음은 주문 확인 모듈에서 사용하는 코드입니다. fpdf을 사용하여 pdf 파일을 만들고 이메일을 보내고 있습니다. 그 다음 쇼핑 카트를 비우고 메뉴를 다시 표시합니다.PHP는 자바 스크립트 기능을 수행합니다

아래 코드에서 나는 pdf 파일의 생성을 주석 처리했습니다. 나는이 작업을 수행 할 때 이메일이 전송되고 카트가 비워 자바 스크립트 코드

  <script type="text/javascript"> 
       doCart(\'EmptyCart\',\'0\', \'0\', \' \', \'partCheckOut\'); 
      </script> 

에 의해하지만 난 PDF 파일의 생성에 대한 코드의 주석을 해제하는 경우 :

  $pdf->getHdrDtl(); 
      $pdf->Header(); 
      $pdf->Footer(); 
      $pdf->generatePDF(); 

는 PDF 파일이 생성되고, 이메일은 전송되지만 카트가 비워지지 않고 메뉴가 다시 표시되지 않습니다.

제안이나 아이디어가있는 사람이 있습니까?

if (isset($_POST['confirm'])) 
{ 
     $Cart->ConfirmOrder(); 
      /* 
      $pdf->getHdrDtl(); 
      $pdf->Header(); 
      $pdf->Footer(); 
      $pdf->generatePDF(); 
      * 
      */ 
     $Cart->sendOrderEmails($dealer_email); 
      echo ' 
      <script type="text/javascript"> 
       doCart(\'EmptyCart\',\'0\', \'0\', \' \', \'partCheckOut\'); 
      </script> 
      '; 
     $group = $_SESSION['group']; 

     if ($group == 1){ 
       header("Refresh: 1; ./admin_menu.php"); 
        exit; 
     } 
     if ($group == 2){ 
       header("Refresh: 1; ./user_menu.php"); 
        exit; 
     } 
     if ($group == 3){ 
       header("Refresh: 1; ./admin_menu.php"); 
        exit; 
     } 
} 
+0

자바 스크립트 오류가 발생했는지 확인하기 위해 일종의 자바 스크립트 디버깅 도구를 사용하고 있습니까? –

+0

나는 웹이 어떻게 작동하는지 이해하지 못한다고 생각한다. PHP는 JavaScript를 실행할 수 없습니다. 단순히 인쇄하기 만하면 나중에 브라우저에서 다른 사람이 실행할 수 있습니다. 그리고 HTML 중간에 HTTP 헤더를 보낼 수 없습니다. –

+0

PHP는 서버 측 언어이며, 자바 스크립트는 클라이언트 측 언어입니다. 즉, 서버가 자바 스크립트와 상호 작용하는 HTML 페이지를 보냅니다. – Slade

답변

0

$ pdf-> generatePDF()가 어떻게 작동하는지 모르지만 현재 페이지 내에 PDF가 생성되는 것 같습니다. 이 페이지는 HTML 페이지가 아니라 PDF 페이지입니다. 결과적으로 페이지에 HTML 코드 나 텍스트를 직접 작성할 수 없으므로 FPDF 함수를 사용하여 PDF에 데이터를 삽입하고 문서를 생성해야합니다.

그리고 브라우저에 데이터를 보낸 후에는 PHP 헤더를 보낼 수 없습니다. 데이터를 보낸 후에 리디렉션해야하는 경우 javascript 리디렉션을 사용하십시오.

+0

좋은 생각이지만, 시스템에 pdf 파일을 만들고 브라우저를 통해 파일을 다운로드하고 있습니다. 브라우저는 내가 원래 있던 화면에 남아 있습니다. 다음은'$ pdf-> generatePDF' 코드의 마지막 줄입니다 :''$ pdf-> Output ('Order.pdf', 'F'); $ pdf-> 출력 ('Order.pdf', 'D'); ' – Geoff

관련 문제