'Bitte warten'-Meldung bei großen Uploads
snorri
- php
Hi alle,
ich muss für einen Kunden ein Uploadformular erstellen, mit dem seine Kunden teils ziemlich dicke Dateien hochladen können. PHP ist schon entsprechend konfiguriert, meine Sorge gilt aber den Benutzern: Wenn sich während des Uploads lange nichts tut, kommt bestimmt bald jemand auf die Idee, das Formular nochmal und nochmal abzuschicken ...
Ich würde deshalb gerne als direkte Antwort aufs Abschicken eine Meldung "Vielen Dank, Ihre Daten werden verarbeitet, bitte nicht nochmal abschicken!" einblenden, während der Upload läuft.
Wie macht man sowas am schlauesten? Mit flush() die Meldung schicken und darunter in der gleichen Datei die Verarbeitung laufen lassen?
-- snorri
Hello,
Wie macht man sowas am schlauesten? Mit flush() die Meldung schicken und darunter in der gleichen Datei die Verarbeitung laufen lassen?
nein, weil dich das nicht weiterbringt. Das Hochladen der Datei ist Teil IMHO des Requests, d.h. erst wenn dein Request oben angekommen ist läuft dein PHP-Skript los.
Ich würde dir z.B. einen onsubmit-Eventhandler nahe legen, der das Wartefenster parallel öffnet.
MfG
Rouven
OK, dann mach ichs mit JS. Wollte ich eigentlich umgehen, aber wenns nicht anders geht ist das nicht die schlechteste Alternative ;-)
-- snorri
Ahoi snorri,
ich hatte ein ähnliches problem und habe es so gelöst:
...
<form...onsubmit="javascript:document.getElementById('WaitContent').style.display='block';">
...
<div id="WaitContent" style="display:none;position:absolute;...
...
natürlich liese sich auch eine komplexere function denken welche z.B. den hintergrund durch ein halbtransparentes, schwarzes PNG ausgraut und die "Bitte Warten"-Meldung anzeigt etc.
Zu beachten dabei gilt das wenn du ein animirtes Gif als ladebalken verwenden möchtest dieses im IE nicht animiert wird. Im FF schon, wie es bei anderen browsern aussieht weiss ich nicht.
MfG