Mailinglisten-Archive |
Thomas Hausheer schrieb:
> [...] Nach dem Abschicken des Formulares und der Überprüfung
> sollte das File direkt runtergeladen werden. Dies mache ich mit
> folgendem Code:
>
> [...]
> header("Content-type: '.$fileFORMAT.'");
> header("Content-Disposition: attachment; filename=\"".$fileNAME."\"");
> [...]
> Das funktioniert soweit auch prima, nur die eigentliche Website wird
> nicht mehr neu geladen - sie bleibt im Zustand des ausgefüllten
> Formulares stehen. Sie muss sich aber auch reloaden, um weiteren
> Inhalt anzuzeigen (für registrierte Benutzer) und auch um dem User die
> Dankesmeldung anzuzeigen.
Das ist nicht so einfach, denn du willst mit dem Absenden des Formu-
lars zwei Dinge bewirken: Datei herunterladen und Dankesmeldung an-
zeigen. Damit ist HTML im Grunde schon überfordert, und PHP kann
meines Wissens diese Lücke nicht beheben -- aber JavaScript könnte
das (z. B. mit einem zusätzlichen onSubmit-Eventhandler im Formular).
Ich denke, der sauberste Ansatz (der vor allem auch funktioniert, wenn
JavaScript ausgeschaltet ist) ist wie folgt:
Nach Absenden des Formulars erscheint eine Seite (HTML/PHP) "Download
starten", die per JavaScript das PHP-Skript zum Download der Datei
aufruft und alternativ einen Link (mit target="_BLANK") dazu anbietet
(das bekannte "Falls der Download nicht automatisch startet, ...").
Bei eingeschaltetem JavaScript könnte schließlich automatisch auf
eine Danke-Seite weitergeschaltet werden, ohne JavaScript muss man
sich wohl mit einem Link "Weiter" o. ä. behelfen.
Extra-Tipp: Mit Hilfe von <noscript></noscript> lassen sich bestimmte
Texte und Steuerelemente nur bei ausgeschaltetem JavaScript einblenden.
Mit CSS, das per JavaScript geschrieben wird, sind noch schönere
"Tricks" möglich.
Gruß,
Mario Haßler
--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
php::bar PHP Wiki - Listenarchive