Problem mit Formular
-
Hallo zusammen,
da ich erst damit beginne, PHP zu lernen, habe ich mir gedacht, fange ich doch mit einem Formular
an und werte die Variablen später aus. Nun habe ich allerdings schon ein Problem.
Ich möchte vor dem Abschicken des Formulars überprüfen, ob alle Pflichtfelder ausgefüllt
wurden. Das mache ich auch mit PHP. Das Problem ist, dass ich es nicht hinbekomme,
dass die Überprüfung erst stattfindet, wenn der User auf den Abschicken-Button drückt, sondern
gleich wenn das Formular aufgerufen wird. Weiterhin möchte ich, dass die Nachricht
"Dieses Feld muss ausgefüllt werden" direkt hinter das Feld gesetzt wird, dass nicht
ausgefüllt wurde und wie bricht man die die action des Formulars ab, wenn nicht alle
Felder ausgefüllt sind.
Ich danke euch für eure (hoffentlich schnelle) Antworten!Tobsen
-
Um das Formular zu überprüfen bevor es abgeschickt wurde, kannst du kein PHP verwenden, das dies nur serverseitig agieren kann. Das heißt also, die Daten müssen erst übermittelt werden, um überprüft zu werden. Dazu muß aber erst das Formular abgeschickt werden.
-
@Michamab Danke für deine Antwort! Wie kann ich denn die Eingabefelder (Variablen) denn dann vor dem Senden überprüfen lassen? Mit JavaScript? Davor wird hier doch immer abgeraten. Also was wäre die beste Möglichkeit?
Ich danke euch..Tobsen
-
Naja, warum sollte man sie vor dem absenden überprüfen, man kann sie doch auch nach dem absenden mit PHP prüfen und wenn irgendwas fehlt einfach den Benutzer zum Formular zurückschicken - incl. Fehlermeldung.
-
Da hast du natürlich Recht. Ich habe mir vor kurzem Loggys Seite angeschaut und habe dann mal sein Online-Buchungssystem angeschaut (hierbei muss ich auch nochmal Lob aussprechen, sieht echt nicht schlecht aus). Wenn man dort auf "Zimmer buchen" drückt, ohne Daten einzugeben, bekommt man sofort die Aufforderung diese einzugeben und zwar genau an der Stelle, wo sie fehlen. Mir ist klar, dass mir Loggy weit voraus ist, aber ich wollte ja auch nur wissen, wie es geht diese Daten zu überprüfen, bevor man sie sendet.
MfGTobsen
-
Naja, bevor man sie sendet zu überprüfen würde nur mit Scriptsprachen gehen - also JavaScript. Allerdings weißt du ja selber, das das nicht die Alternative ist. Also, überprüfe nach dem Senden, das könnte z.B. so aussehen:
// Formular.php
... <? if($error == 1) { echo("<center><b>Bitte füllen sie das Formular korrekt aus !!!</b></center>"); } ?> <form action="sender.php"> Name: <input type="text" name="name"> Email: <input type="text" name="email"> <input type="submit" value="Absenden"> </form> ...
// Sender.php
<? if($name != "" && $email != "") { ... } else { header("Location: formular.php?error=1"); } ?>
Das ist natürlich eine sehr unausgereifte und vereinfachte Version, aber so in der Art würd ich es machen.
[ Dieser Beitrag wurde am 12.10.2002 um 13:42 Uhr von Michamab editiert. ]
-
Achso, vielleicht sind die Links hier noch interessant:
http://www.ideenreich.com/trickkiste/tricks93.shtml
-
@Michamab
Danke für deine Hilfe!
Was macht eigentlich diese Zeile:
header("Location: formular.php?error=1");Ps: @Loggy: Wäre natürlich super, wenn du deine Lösung auch verraten würdest. Musst, aber nicht, wenn's unter dein Berufsgeheimnis fällt
-
Was macht eigentlich diese Zeile:
header("Location: formular.php?error=1");Die leitet den Benutzer wieder zum Formular zurück, wenn das Formular nicht ausgefüllt wäre. Im Query wird noch die Variable error rangehängt, damit der Benutzer auch diese schöne Fehlermeldung bekommt.