Submit ohne Button in Formular

webdesign hat gesagt.:
Ich habe bewusst alles in eine Datei gepackt und keine externe Datei zum ausführen des Formulars gewählt. Ich möchte die Fehlerausgabe direkt beim Formular haben und finde es einfach nicht schön bei der externen Datei als Fehlermeldung das ganze Formular per echo noch einmal auszugeben.
Das brauchst Du auch nicht. In der HTML-Datei, die das Formular enthält, prüfst Du ob (sofern vorhande) Pflichtfelder ausgefüllt sind. Willst Du die Daten noch genauer prüfen (z.b. E-Mail Adresse, PLZ oder andere Daten) prüfst Du diese natürlich auch auf Richtigkeit.

Hat der User alles richtig ausgefüllt, schickst Du das Formular (an eine externe Datei) ab. Und nicht vorher. Im PHP-Script, was den Datenbank-Eintrag o.ä. vornimmt, kannst Du aus Sicherheit nochmal die Daten prüfen, ob Sie generell ausgefüllt sind.

Warum zweimal prüfen? Ganz einfach: Der User sieht BEVOR (!) er das Formular abschicken will, ob er eventuell Eingaben vergessen hat oder eingaben falsch angegeben hat (zu kurze PLZ, E-Mail Adresse ist falsch usw) und nicht erst nachdem er das Formular bereits abgeschickt hat. Stichwort: Usability

Natürlich kannst Du die Prüfung im Script auch weglassen, aber sicher ist nunmal sicher. So vermeidest Du mögliche Leereinträge in der Datenbank oder andere dadurch resultierende Fehler. Für denn Fall, dass Du im Script prüfst und trotz der JavaScript-Prüfung einen Fehler feststellst, gibst Du einfach eine entsprechende Fehlermeldung aus, die zusätzlich noch einen "Zurück"-Link enthält. Leitest Du mittels JavaScript auf die vorige Formularseite, sind auch alle eingebenen Werte vom User noch im Formular enthalten (außer als Passwort deklarierte Felder).

Nur fürs nächste mal ;o)
 
Hallo Zusammen
Ich weiss auch nicht was ich falsch mache, aber bei mir funktioniert einfach nur die Methode mit dem normalen Button. Das mit dem Bild oder mit dem Hidden Feld geht leider auch nicht. Ich weiss nicht genau an was es liegt, aber ich denke, dass es daran liegen muss, dass beim Javascript Befehle:javascript:document.form.submit()
die Formulardaten nicht übergeben werden, denn wenn sie übergeben geworden wären, dann hätte auch meine Fehlerabfrage funktionieren müssen.

Ich versuche es mal, wenn ich das hidden Feld anders benenne, vielleicht geht es dann.

"Das Problem ist: Wenn ich die Fehlerabfrage im gleichen Script mache, muss ich ein
if ($submit) benutzen. Wenn ich diese jedoch in einem externen Script mache, brauche ich das nicht. Da ich aber bei einer falschen Eingabe die Fehlerausgabe per Variable welche sich verändert beim Formular selbst anzeigen möchte, muss ich die Abfrage in der gleichen Datei machen, da ich nicht weiss wie man in einer externen PHP Datei eine Variable in einer anderen Datei ändern kann. Oder könnt ihr mir dabei helfen?

Konkret geht es darum:

Ich habe ein Formular, ganz einfach, wo man nur die E-Mail Adresse eingeben kann. Wenn die E-Mail Adresse falsch oder nicht eingegeben wurde und das Formular trotzdem abgeschickt wurde, möchte ich, dass sich ein Pop Up Fenster öffnet in welchem die Fehlerausgabe kommt. Ich habe das Problem so gelöst, dass ich im body-tag eine PHP- Variable eingesetzt habe: <? echo("$onload")?>, welche ich am Anfang auf null setze. Wenn jetzt beim Formular auf submit gedrückt wurde, prüfe ich ob die Daten richtig eingegeben wurden. Wenn die Daten falsch sind, dann gebe ich der Variable folgenden Wert: $onload='onload="error()"';
Wenn alle Daten richtig sind, sende ich die Daten per email an eine mailadresse und übergebe folgenden Wert der Variable: $onload='onload="danke()"';
Irgendwie funktioniert diese Art bei mir nur mit einem Submitt Button. Mit einem Hidden Feld geht es irgendwie auch nicht, obwohl es theoretisch gehen müsste. Ich frage mich langsam, ob es denn wirklich nur mit einem Button geht, oder ob mich mein Browser einfach verarscht ;-)

So, ich hoffe, dass ich mein Problem gut geschildert habe und hoffe, dass ihr mir helfen könnt.

Gruss Jonas
 
Zuletzt bearbeitet:
Judihuiiiiiiiiiiiiii
Es geht!
Es lag daran,dass ich das Hidden Feld unbennen musste. Irgendwie gab es Probleme damit, dass ich das hidden Feld submit nannte. Ich habe es jetzt absenden genannt und es funktioniert tadellos.
Tja, was so kleine Veränderungen bewirken können, einfach genial :suspekt:

Vielen Dank an alle, ihr habt mir sehr viel weitergeholfen.
;-)
 
Zurück