2017-06-17 4 views
0

Ich schreibe ein einfaches Skript PHP, mit TCPDF-Klasse, um eine Datei PDF zu generieren. Nach, in jquery gibt es die Datei in base64 zurück und ich sehe in einem modalen.AJAX-Return-Parameter von TCPDF-Skript

Dies ist der Ajax-Code ..

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

Dies ist die PHP-Datei ..

<php 
// code to generate pdf 
$pdf->Output($file_name, 'I'); 

Wie ich auch andere Parameter in SUCCESS zurückkehren können? Zum Beispiel möchte ich zurückkehren: pdf Pfad, Datum, Autor, etc ..

Thanx!

Antwort

0

Sie haben die PDF-Datum, Pfad zu schließen, der Autor in einem Array dann json_encode das Array, es und beendet sich.

Dann in Ihrem Erfolg Methode in jquery Zugang sie mit data.path, data.date, data.author

Hope this löst Ihr Problem

+0

ich es einfach versuchen, aber das Problem ist "mimt: 'text/plain; charset = x-user-defined'". Also, Ajax nicht zurück json Daten .. – perseoclub

+0

Kannst du den Server Seite Code, der die JSON zurückgeben sollte. –

+0

Thx Alani, das Problem ist, dass Ajax "parsererror" (200) zurückgibt, wenn der Code von '$ pdf-> Ausgabe ($ file_name, 'I');', in json_encode() im serverseitigen Skript generiert wird. Ich habe das gelöst mit '$ pdf_code = base64_encode ($ pdf-> Ausgabe ($ file_name, 'S'));'. Auf diese Weise kann ich die Variable als base64 zurückgeben! Nachdem ich es in js entschlüsselt habe .. und es ist alles in Ordnung! ;) – perseoclub

0

ich gelöst habe !!

ERSTE. Ajax-Request ändern mit "datatype: 'JSON'":

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

Im PHP-Code muss ich in den TCPDF Ausgang ändern ..:

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

..und dann kehre ich alle Daten in ein Array JSON.