Formular nur einmal senden
Rudof Schmidt
- javascript
Hallo,
ich möchte, dass ein Formular nur einmal abgesendet werden kann und dann der Button fürs Senden deaktiviert wird, damit die Angaben nicht mehrfach auf dem Server eintreffen. Allerdings muss man auch ohne Javascript in der Lage sein, das Formular abzusenden (dann natürlich theoretisch mehrmals).
Danke
Rudolf
Hallo,
Hallo Rudolf,
ich möchte, dass ein Formular nur einmal abgesendet werden kann und dann der Button fürs Senden deaktiviert wird, damit die Angaben nicht mehrfach auf dem Server eintreffen. Allerdings muss man auch ohne Javascript in der Lage sein, das Formular abzusenden (dann natürlich theoretisch mehrmals).
Danke
Rudolf
deine Besucher können natürlich die original Formular-Seite beliebig oft aufrufen. Wenn sie sie nur einmal abschicken sollen, braucht ein irgendwie geartetes "Gedächtnis". Mit reinem HTML wird es schwierig werden, zumindest unübersichtlich.
Es bräuchte deshalb etwas mehr Informationen zu dem vorliegenden Fall. Beim Abschicken des Formulars ist die Seite ja erst mal weg. Mit dem Back-Button ist sie wieder da und beim erneuten Aufruf der Formularseite ist sie ebenfalls wieder da. Ist _dass_ das Problem ?Ist bekannt, _wer_ sich gerade auf Seite befindet (Username, Passwort), sind andere Techniken erlaubt (Cookie, ASP, PHP) um etwas mehr Funktionalität zu bekommen ? Wäre es möglich, beim Webserver zu entscheiden, ob die Daten übernommen werden ?
Gruß
Hans-Peter
Hallo Hans-Peter,
danke für Deine Antwort. Es geht mir gar nicht darum, dass die Leute auf den Back-Button drücken. Ich möchte nur bei der aktuell geladenen Seite, dass die Leute nicht doppelt auf den submit-Button drücken, damit das Formular nur einmal abgesendet wird. Und das am besten mit Javascript (vielleicht bei onSubmit sowas wie Button disablen, falls das geht)
Rudolf
Hallo Rudolf,
ich möchte, dass ein Formular nur einmal abgesendet werden kann und dann der Button fürs Senden deaktiviert wird, damit die Angaben nicht mehrfach auf dem Server eintreffen. Allerdings muss man auch ohne Javascript in der Lage sein, das Formular abzusenden (dann natürlich theoretisch mehrmals).
Danke
Rudolf
deine Besucher können natürlich die original Formular-Seite beliebig oft aufrufen. Wenn sie sie nur einmal abschicken sollen, braucht ein irgendwie geartetes "Gedächtnis". Mit reinem HTML wird es schwierig werden, zumindest unübersichtlich.
Es bräuchte deshalb etwas mehr Informationen zu dem vorliegenden Fall. Beim Abschicken des Formulars ist die Seite ja erst mal weg. Mit dem Back-Button ist sie wieder da und beim erneuten Aufruf der Formularseite ist sie ebenfalls wieder da. Ist _dass_ das Problem ?Ist bekannt, _wer_ sich gerade auf Seite befindet (Username, Passwort), sind andere Techniken erlaubt (Cookie, ASP, PHP) um etwas mehr Funktionalität zu bekommen ? Wäre es möglich, beim Webserver zu entscheiden, ob die Daten übernommen werden ?
Gruß
Hans-Peter
Hallo Hans-Peter,
danke für Deine Antwort. Es geht mir gar nicht darum, dass die Leute auf den Back-Button drücken. Ich möchte nur bei der aktuell geladenen Seite, dass die Leute nicht doppelt auf den submit-Button drücken, damit das Formular nur einmal abgesendet wird. Und das am besten mit Javascript (vielleicht bei onSubmit sowas wie Button disablen, falls das geht)
Rudolf
Hallo Rudolf,
oh je, da habe ich um viel zu viele Ecken herum gedacht. Der Fall ist viel einfacher. Trotzdem bin ich da kurzfristig überfragt. Wird das Formular tatsächlich zweimal abgeschickt, wenn man nur schnell genug drauf klickt ?
So wie Du das schreibst, geht es - denke ich mal - nicht. Es wären ja zwei Aktionen notwendig (disable und submit). Also könnte kein Submit-Button verwendet werden, sondern ein Klick-Button und damit wäre schon wieder JavaScript im Spiel.
Vielleich hat ja sonst noch jemand eine geniale Idee.
Viel Erfolg
Hans-Peter
Äh, nochmal ich,
wenn Du Server-seitig scripten köntest, und wüßtest, ob JavaScript enabled ist, könnte man natürlich auch zwei unterschiedliche Button machen der Art (z. B. mit ASP)
<% if (JavaScriptEnabled = true) then %>
<input type="button" ... onClick="DisableAndSubmit();">
<% else %>
<input type="submit" ...
<% end if %>
ob dann aber wirklich das Disable zeitlich nennenswert vor dem Submit ausgeführt wird, habe ich keine Ahnung.
Gruß
Hans-Peter
Hi,
habs jetzt gelöst. Ich setze eine lokale Variable auf der Seite einfach per onSubmit des Formulars auf "gesendet" und lehne dann jedes weitere Senden mit "return false" ab.
Danke noch mal
Rudolf
Äh, nochmal ich,
wenn Du Server-seitig scripten köntest, und wüßtest, ob JavaScript enabled ist, könnte man natürlich auch zwei unterschiedliche Button machen der Art (z. B. mit ASP)
<% if (JavaScriptEnabled = true) then %>
<input type="button" ... onClick="DisableAndSubmit();">
<% else %>
<input type="submit" ...
<% end if %>
ob dann aber wirklich das Disable zeitlich nennenswert vor dem Submit ausgeführt wird, habe ich keine Ahnung.
Gruß
Hans-Peter
Hi Rudolf
habs jetzt gelöst. Ich setze eine lokale Variable auf der Seite einfach per onSubmit des Formulars auf "gesendet" und lehne dann jedes weitere Senden mit "return false" ab.
Geh noch nen Schritt weiter und steck die Variable in window.name, dann
ist die gesamte session geschuetzt, das heißt dein User kann solange
der Browser läuft (bzw window.name nicht geändert wird) nicht wieder posten.
Tschau
Rolf