Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Ralph Stahl Newsgroups: de.comp.lang.php,de.comp.lang.javascript Subject: Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Date: Mon, 18 Sep 2017 09:56:35 +0200 Lines: 67 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net YAB7S5IRtV44f6KUfDTVRQYeB+fjF1LF3alkDA4683g3w0ZdhO Cancel-Lock: sha1:8+VD3Z+TUYWAJH8S+VHTWiuApPI= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 In-Reply-To: Content-Language: de-DE Xref: csiph.com de.comp.lang.php:4261 de.comp.lang.javascript:4907 Arno Welzel schrieb: > Ralph Stahl: > >> Moin! >> >> Folgende Situation in einer PHP/jQuery-Applikation: >> >> Auf einer Website ist ein Button, per Klick darauf wird mittels >> jQuery-post() ein PHP-File (sagen wir "create-pdf.php") gerufen. In >> selbigem wird mit der bekannten PDF-Bibliothek TCPDF ein PHP-Dokument >> erzeugt, das ich dann zum Drucken oder Speichern aufpoppen lassen möchte >> (der Browser ist so eingestellt). >> >> In Kurzfassung dieses Stückchens Javascript heißt also: >> >> $('#mein_button').on('click', function() { >> $.post('create-pdf.php', {Parameter...}); >> }); > > Und wo wird das Ergebnis dieses Post verarbeitet? Die Frage hat mit PHP > außerdem exakt gar nichts zu tun. > > [...] >> Das klappt prima, solange ich create-pdf.php direkt im Browser aufrufe. >> Den Aufruf über Ajax kann ich zwar in der Konsole von Firefox verfolgen >> und man sieht auch die obigen Header richtig - nur poppt nichts, die >> Daten geht ins Leere. > > "Ajax" bzw. XHR bedeutet, dass JavaScript das Ergebnis in einem Handler > übernehmen kann. Einen Request per XHR zu schicken bedeutet *nicht*, > dass der Browser das Ergebnis dann anzeigt, sondern Du musst es schon > selber per JavaScript-Handler entgegennehmen und ggf. zur Anzeige bringen. > >> Was ist an der Idee verkehrt? Ich rufe das Ganze doch in dem Browser > > Die Benutzung von XHR statt einfach einem direkten Link oder einem > Formular, dass per POST abgeschickt wird. > > Als Idee: > >
> > > >
> > Und dann eben genau die Elemente (parameter1...) dieses
per > Script befüllen und das form dann abschicken oder bei dem submit-Knopf > noch einen onClick-Handler ergänzen, der vor dem Abschicken die > hidden-Felder passend setzt. > > X'Post und F'Up nach de.comp.lang.javascript > Alles klar inzwischen, Arno. Ich erinnere an den Originalpost von mir; > Mit TCPDF ist die entscheidende letzte Zeile in create-pdf.php: > $pdf->Output("filename.pdf", 'I'); Da war ich noch bei TCPDF (PHP!) und überhaupt PDF und dabei, dass diese Zeile in anderer Umgebung funktioniert und in meiner nicht. Inzwischen löse ich das Problem ganz anders, ohne PDF und ohne Kunststückchen. Trotzdem habe ich hier einige Anstöße bekommen, danke dafür! closed :-) Ralph