2016-10-20 4 views
0

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

Antwort

Verwandte Themen