Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Arno Welzel Newsgroups: de.comp.lang.php,de.comp.lang.javascript Subject: Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Followup-To: de.comp.lang.javascript Date: Sun, 17 Sep 2017 15:00:07 +0200 Lines: 57 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net LLhUUJKrUT6eTvv+gZ8BDg76HnUzoH6CckYHUbbqD17VvtCjFS Cancel-Lock: sha1:or7xlewgb4Ui9thg7Pgz/68yKBA= In-Reply-To: Xref: csiph.com de.comp.lang.php:4260 de.comp.lang.javascript:4906 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 -- Arno Welzel https://arnowelzel.de https://de-rec-fahrrad.de http://fahrradzukunft.de