Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.javascript > #4907
| From | Ralph Stahl <post@rstahl.de> |
|---|---|
| Newsgroups | de.comp.lang.php, de.comp.lang.javascript |
| Subject | Re: PDF-Anzeige aus per Ajax gerufenem PHP-File |
| Date | 2017-09-18 09:56 +0200 |
| Message-ID | <f29chjF8h5aU1@mid.individual.net> (permalink) |
| References | <oo95sc$uni$1@dont-email.me> <f279uqFol4dU1@mid.individual.net> |
Cross-posted to 2 groups.
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:
>
> <form id="requestpdf" action="create-pdf.php" method="post">
> <input type="hidden" name="parameter1" value="..." />
> <input type="hidden" name="parameter2" value="..." />
> <input type="submit" value="PDF Anfordern" />
> </form>
>
> Und dann eben genau die Elemente (parameter1...) dieses <form> 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
Back to de.comp.lang.javascript | Previous | Next — Previous in thread | Find similar
Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Arno Welzel <usenet@arnowelzel.de> - 2017-09-17 15:00 +0200 Re: PDF-Anzeige aus per Ajax gerufenem PHP-File Ralph Stahl <post@rstahl.de> - 2017-09-18 09:56 +0200
csiph-web