2017-06-17 2 views
0

TCPDFクラスを使用して単純なスクリプトphpを作成して、pdfファイルを生成します。 その後、jqueryでファイルをbase64で返し、モーダルで表示します。TCPDFスクリプトからのAJAXリターンパラメータ

これは。これは、PHPファイル..です

私もSUCCESSで他のパラメータを返すことができますどのように
<php 
// code to generate pdf 
$pdf->Output($file_name, 'I'); 

$.ajax({ 
    url: path, 
    type: 'post', 
    data: { myjson: myjson }, 
    mimeType: 'text/plain; charset=x-user-defined', 
    success : function(data) { 
     // printPreviewBase64() is a function decodes 'data' and preview pdf in a modal 
     printPreviewBase64(data); 
    } 
}); 

Ajaxコードのですか? たとえば、返信したい:pdfのパス、日付、著者など

Thanx!

答えて

0

pdfの日付、パス、作成者を配列に入れ、配列をjson_encodeにして印刷して終了する必要があります。 data.path、data.date、これは私が解決してきた問題

+0

私は試してみましたが、問題は "mimeType: 'text/plain; charset = x-user-defined'"です。したがって、ajaxはjsonデータを返しません。 – perseoclub

+0

jsonを返すべきサーバーサイドコードを投稿できますか? –

+0

Thx Alani、問題は、サーバー側スクリプトのjson_encode()で '$ pdf-> Output($ file_name、 'I');'によって生成されたコードを使用すると、ajaxが "parsererror"(200)を返すことです。 '$ pdf_code = base64_encode($ pdf-> Output($ file_name、 'S'));'を使って解決しました。このようにして、変数をbase64として返すことができます!私はjsでそれをデコードした後..それは大丈夫です! ;) – perseoclub

0

を解決data.author

希望を持ってjQueryのアクセス、それらのあなたの成功の方法で次に

!!

FIRST。私はTCPDF出力を変更する必要がPHPコードで

$.ajax({ 
    url: path, 
    type: 'post', 
    data: { myjson: myjson }, 
    dataType: 'JSON', 
    success: function(data) { 
     // data.pdf_code → verrà poi codificato in base64.. 

     console.log(data.pdf_path); 

     //console.log(data.pdf_code); 
     printPreviewBase64(data.pdf_code); 

    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     console.log(xhr.status); 
     console.log(thrownError); 
    } 
}); 

..:: ": 'JSON' dataTypeと" 変化のAJAXリクエスト

$pdf_code = base64_encode($pdf->Output($file_name, 'S')); 

..andその後、私は内のすべてのデータを返します配列JSON

関連する問題