Ich habe ein Problem mit der Erstellung der Klasse für die Ausgabe von JSON-Daten in PDF. Die PHP-Datei ist wie folgt:FPDF-Fehler beim Erstellen der Klasse
<?php
header('Content-type: text/json');
ob_start();
require('fpdf.php');
class PDF extends FPDF{
// Colored table
function FancyTable($PDFtabHead, $PDFtabData)
{
// stuff with table works if tested with another PHP page
}
} // END -class
$PDFtabHead = json_decode(($_POST['PDFtabHead']), true);
$PDFtabData = json_decode(($_POST['PDFtabData']), true);
$pdf = new PDF();
$pdf->SetFont('Arial','',12);
$pdf->AddPage();
$pdf->FancyTable($PDFtabHead,$PDFtabData);
$pdf->Output();
echo json_encode(array("res"=>$PDFtabHead)); // Only to chek if outputs something
ob_end_flush();
?>
Die CLIP-Funktion von meinem JS-Datei ist:
$.ajax({
type: "POST",
async: false,
url: './FPDF/PDF.php',
dataType: 'json',
data: {PDFtabHead: tabHead, PDFtabData: tabData},
success: function (response) {
var res = response.res;
console.log("ok return: "+res);
} // success
,
error: function() {
console.log("ERROR CONNECTING TO ./FPDF/PDF.php");
}// error
}); // ajax
tabhead und tabdata korrekt sind, ist dies die Ausgabe von tabdata ist:
["05:22", "0043", "22:31", "200201", "05:22", "0044", "22:31", ......]
Der Aufruf von PDF.php immer mit Fehlern beendet wird, auf der Konsole ausgibt: ERROR
Wenn ich es von einer anderen Testseite ./FPDF/PDF.php
ANSCHLUSS testen, die keine Daten im JSON-Format senden , aber ein normales PHP-Array funktioniert. Offensichtlich muss ich zu$PDFtabHead = ($_POST['PDFtabHead']);
$PDFtabData = ($_POST['PDFtabData']);
in diesem Fall PDF-Seite wird richtig gerendert.
In ähnlicher Weise, wenn ich die Klassendeklaration löschen und einfach zurück zu meiner JS-Seite das JSON-Array, funktioniert es; nicht PDF drucken es ist klar, aber das Array ist wie erwartet