[PHP/JS] Ein Problem mit TCPDF bzw. mit passen einer Variable

02/17/2016 11:28 .MaisKolben™#1
Hallo zusammen,

ich habe aktuell folgendes Problem und bin tatsächlich am verzweifeln.

Mein Ziel: Ich möchte gerne eine HTML Tabelle in einer Variable speichern und entsprechend in ein anderes Script weitergeben um diese dort zu verwenden. Die Tabelle soll mit Hilfe von TCPDF als PDF exportet werden.

Folgendes habe ich bisher gecoded:

Die Testtabelle:
Code:
<div id="tablecontent">
    <table>
        <tr>
            <th>Test</th>
        </tr>
    </table>
</div>
Das Script zum passen der variable in Javascript bzw. Ajax:
Code:
<script type="text/javascript">
        $('#getpdf').click(function() {
            var datahtml = $("#tablecontent").html();

            $.ajax({
                // This PHP file will generate the PDF and save it to your server
                // $pdf->Output('path/to/pdf/file.pdf', 'F');
                url: '/pages/createpdf.php',
                type: 'POST',
                cache: false,
                data: ({data: datahtml}),
                success: function(data) {
                    console.log(data);
                    alert(data);
                }
            }).done(function(data) {
                $('#tablediv').html('<iframe width="700" height="300" src="/pages/createpdf.php"></iframe>');
            }).fail(function() {
                console.log("error");
            });
        });
    </script>
Und zum Schluss natürlich noch das TCPDF Modell:
Code:
<?php
require_once('tcpdf.php');
    # Neues Dokument erstellen
    $pdf = new TCPDF("L", "mm", "A4", true, "UTF-8", false);
    # Neues Objekt anlegen, mit den Eigenschaften (Hochkant (P), alle Angaben in mm, Seitenformat A4, Kodierung UTF-8)
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor("AREA");

    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false); // kann genutzt werden, um Seitenzahlen etc. einzupflegen
    $pdf->SetFont('times', 'BI', 20); // Schriftart festlegen
    // add a page
    $pdf->AddPage();

    $html = $_POST['data'];
    // output the HTML content
    $pdf->writeHTML($html, true, false, true, false, '');
    // reset pointer to the last page
    $pdf->lastPage();

    $pdf->Output('mytext.pdf', 'D'); // PDF-Dokument erstellen, beim FF gab es schon mal Probleme mit der internen Anzeige des Dokuments, daher der Parameter "D", sonst kann für die interne Darstellung auch "I" genutzt werden.

?>
Anmerkung: Wenn ich HTML Code Hardcoded in das TCPDF Modell in die Variable "$html" setze, dann wird dieser auch ohne Fehler als PDF exportet.

Der Fehler sollte als im Grunde beim passen der variable passieren, nur leider bin ich nicht in der Lage den Fehler zu finden.

Ich wäre jedem für seine Hilfe dankbar!


Gruß,
Mais
02/17/2016 17:39 ~ JWonderpig ~#2
Code:
data: {data: datahtml},
teste es einmal so
02/17/2016 18:17 Devsome#3
Quote:
Originally Posted by ~ JWonderpig ~ View Post
Code:
data: {data: datahtml},
teste es einmal so
Damit sollte es klappen.

@Maiskolben: sofern du mehrere Werte übergeben willst kannst du diese einfach mit einem kommata trennen.

Code:
data: { data1: datahtml1, data2: datahtml2},
Sofern du keine Ausgabe in deinem creatpdf.php hast, wirst du afaik auch nichts beim alert von der success Funktion bekommen, falls du da was brauchst zum debuggen.
02/19/2016 10:10 .MaisKolben™#4
Danke an euch, der Lösungsansatz war schon mal der richtige und alles funktioniert wie gewollt!

Gruß,
Mais