Hallo!
Ich habe ein ganz normales html Formular mit ein paar Dateianhängen. Die Daten werden mittels php in eine Datenbank geschrieben.
Dabei gibt es folgendes Problem: Der Dateiupload benötigt ein wenig Zeit und in dieser Zeit sollen die Daten kein 2. Mal mehr abgeschickt werden.
Wie verhindert man am besten, dass der Submit Button mehr als 1x angeklickt werden kann?
Geht das auch ohne Javascript?
mfg
php
-
- Frage
-
tonreg -
8. März 2007 um 09:06
-
-
gute frage - hier vielleicht eine antwort:
Ich würde es vielleicht so machen:
einen session_schlüssel erzeugen, und ein hidden-feld im formular damit füllen.
und diesen schlüssel dann auch in die datenbank schreiben - wenn der schlüssel dann schon in der datenbank vorhanden ist, dann wird das skript gar nicht mehr weiter ausgeführt, und bricht ab - sonst weiter im prcedere.Den submit-button sperren geht nur mit java-script (soweit ich weis)
LG
gerhard -
-
bist du dir sicher, dass das so geht? Ich bekomme bei folgender Zeile eine Fehlermeldung beim klicken:
<input type="button" value = "OK" name = "weiter" id = "weiter" onclick="$('weiter').disabled=true;">
mfg -
probiers mit onclick="document.getElementById('weiter').disabled=true;"
-
Der Button wird deaktiviert, nur es passiert danach nichts mehr. Der Submit wird nicht mehr ausgeführt.
mfg -
naja, wenn du einen button verwendest musst du per JS auch noch ein submit() schicken (oder du verwendest einen submit-button )
-
-
Das funktioniert schon ganz nett! Es ist und bleibt halt eine JavaScript Lösung, die nicht ganz so optimal ist, weil es nicht jeder aktiviert hat!
Wie viel Prozent aller "normalen" Internet User (d.h. keine Informatiker) haben eurer Meinung nach standardmäßig JavaScript aktiviert?
Ich schätze den Anteil ca. um die 75%.
Was glaubt Ihr?
mfg -
Der Standardnutzer wird JS aktiviert haben. Einige Informatiker auch (z.b. ich).
Also ich tippe insgesamt auf die 80%.
Edit: Ich hab mich noch nicht so eingearbeitet ind AJAX, aber mit dem müsste es eigentlich auch gehen, dass man den Button entweder entfernt, oder einfach so ein "Bitte warten, Dateien werden hochgeladen..." Text anzeigt statt dem Button
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!