2016-05-26 11 views
3

TCPDFを使用して現在のHTMLページをpdfに変換しようとしています。私はAjaxを使ってHTMLコードをCreatePDFコントローラに渡しますが、なぜ "pdfreport"ビューを開くことができないのか分かりません。私のコントローラCreatePDFで

:ビューで

public function pdf() { 
    $this->load->helper('pdf_helper'); //tcpdf helper file 
    $HTMLInfo = $this->input->post('HTMLInfo'); //get html code from view 
    $data['HTMLInfo'] = $HTMLInfo; 
    $this->load->view('pdfreport', $data); 
} 

私は "PDF" ボタン、クリックがあります、htmlコードを

$('#pdf').click(function(){ 
    $.ajax({//ajax call 
    type: 'post', 
    url: '<?php echo base_url('CreatePDF/pdf'); ?>', 
    data: {'HTMLInfo': document.getElementById('repTable').outerHTML}, 
    success: function (data) { 
    } 
    }); 
}); 

私は$データを交換する場合は[ 'HTMLInfoを'] CreatePDFを直接呼び出すと、pdfページを読み込むのに問題はありません。

は、私が使用している場合:

$HTMLInfo = 'TEST'; 
<input type="button" onClick="location.href = '<?php echo site_url("CreatePDF/pdf/{$HTMLInfo}"); ?>'" value="HTMLInfo" /> 

また、PDFの "TEST" をプリントアウトしても問題ありませんが、使用する方法の代わりに "TEST" の "のdocument.getElementById( 'repTable')outerHTML。" ?

誰もが私にこれを助けることができますか?

+0

。 ajaxメソッドでビューを読み込むことはできません。 –

答えて

0

ajaxはバックグラウンドタスクであるため、ビューを読み込もうとするとコントローラの機能にリダイレクトする必要があります。

あなたは、コントローラからtrueまたはfalse送信し、真ならば、location.herf =「URL」あなたの成功の機能でそれをチェックする必要があり

public function pdf() { 
     $this->load->helper('pdf_helper'); 
     $HTMLInfo = $this->input->post('HTMLInfo'); 
     if($HTMLInfo != "") { 
     $urisegment = base64_encode($HTMLInfo); 
     redirect("controller_name/function_name/'".$urisegment."'"); 
     } 
    } 

    public function get_html($html){ 
     $data = base64_decode($html); 
     $this->load->view('pdfreport', $data); 
    }