11.5 Funktionen für das Formular und die Elemente
 
Nachdem nun die Äußerlichkeiten erledigt sind, können wir uns den Funktionalitäten des Formulars zuwenden. Jedem Formular und jedem einzelnen dynamischen Element können Sie Skripte, also kleine Programmteile, zuweisen, die – abhängig von verschiedenen Ereignissen – ausgeführt werden. Sie finden diese Skripte im Konfigurationsdialog der einzelnen Elemente über den Reiter Skripte. Für die Eingabeelemente lassen sie sich in drei Kategorien einteilen:
Tabelle 11.5 Die verschiedenen Skriptkategorien
Skriptkategorie
|
Funktion
|
Initialisierungsskript
|
Was passiert beim Laden des Elements?
|
Aktionsskript
|
Was passiert bei einer bestimmten Aktion, z. B. einem Mausklick?
|
Validierungsskript
|
Worauf soll der Inhalt eines Elements getestet werden?
|
Bei jeder dieser Kategorien haben Sie die Auswahl zwischen Kein, Bibliothek und Spezial.
|
Kein ist die Default-Einstellung und bedeutet, dass kein Skript ausgewählt wurde. |
|
Unter Bibliothek können Sie sich mehrere vorgefertige Skripte aussuchen. |
|
Am flexibelsten, aber auch am anspruchsvollsten ist die letzte Option: Spezial. Hier können Sie sich über Rahmencode erzeugen das Muster einer Funktion vorgeben lassen und die Platzhalter und den eigentlichen Programmteil mit eigenen PHP-Befehlen ersetzen. |
Um Ihnen einen Überblick zu verschaffen, haben wir in Abbildung 11.23 für eine beliebige Dropdown-Liste alle drei Funktionsoptionen verteilt auf die verschiedenen Skriptkategorien ausgewählt.
11.5.1 Den Fokus auf ein Element setzen
 
Kehren wir zu unserem Beispiel zurück. Beim Aufrufen eines Formulars wird der Fokus standardmäßig auf das erste Element eines Formulars gelenkt. Wir möchten nun aber, dass die Aufmerksamkeit des Nutzers zuerst auf das E-Mail-Feld gezogen wird, damit er diese wichtige Eingabe gleich als Erstes erledigt.
Dazu gehen wir in den Skript-Dialog des E-Mail-Textfeldes und klicken im Initialisierungsskript-Bereich die Bibliothek-Option an.
Sie können sich bereits in der Entwurfsansicht vergewissern, dass sich der Cursor beim Initialisieren des Formulars im E-Mail-Feld befindet.
11.5.2 Validierung der Eingaben
 
Wenn ein User ein Formular ausgefüllt hat, schleichen sich oft Fehler ein oder obligatorische Felder werden übersehen, was Auswirkungen auf den ganzen Kommunikationsprozess haben könnte. Um diese fehlerhaften Eingaben abzufangen, können Sie an die jeweiligen Formularfelder kleine Programmskripte anhängen, die nach dem Betätigen des Abschicken-Buttons, aber noch vor dem Einfügen der Daten in die Datenbank den Nutzer darauf hinweisen, dass er das Formular an bestimmten Stellen falsch oder gar nicht ausgefüllt hat.
In unserem Beispiel soll ein Skript überprüfen, ob denn tatsächlich eine E-Mail-Adresse in das Feld E-Mail eingegeben wurde. Dazu klicken wir doppelt auf das Eingabefeld E-Mail und begeben uns dann in das Register Skripte (Abbildung 11.25). Hier wählen Sie bei Validierungsskript den Radiobutton Bibliothek und wählen in der Dropdown-Liste die Funktion ff_validemail an. Im Feld darüber können Sie festlegen, welche Fehlermeldung ausgegeben werden soll, falls der Nutzer keine richtige E-Mail-Adresse eingegeben hat.
Wie Sie in der Dropdown-Liste sehen, können die unterschiedlichsten Gültigkeitsprüfungen durchgeführt werden. So testet z. B. ff_integer_or_empty, ob das Feld eine ganze Zahl enthält oder leer ist.
11.5.3 Über den Button abschicken
 
Bisher ist unsere Schaltfläche Abschicken zwar für eine bestimmte Aufgabe vorgesehen, aber noch nicht funktionsfähig. Dazu müssen wir noch einmal in die Konfiguration des Buttons gehen und über den Reiter Skripte eine Funktion anbinden (Abbildung 11.26). Wählen Sie den Bibliothek-Radiobutton, und wählen Sie die Funktion ff_validate_submit aus, die zunächst die eingestellten Validierungsskripte durchläuft und dann die Daten abschickt.
Sie können hier aber auch andere Aktionen mit dem Button verbinden – z. B. den Sprung auf eine weitere Seite des Formulars.
11.5.4 Rückmeldung an den Nutzer geben
 
Wenn das Formular abgeschickt wurde, sollten Sie den User nicht im Unklaren lassen, sondern ihm eine Meldung schicken, dass die Übertragung geklappt hat. Das Skript, das dazu notwendig ist, wird diesmal nicht mit einem einzelnen Element, sondern mit dem gesamten Formular verbunden.
Wir gehen daher eine Ebene höher in den Formularmanager und gelangen in die Konfiguration, indem wir auf den Namen (!) unseres Formulars klicken. Auch hier finden wir den Reiter Skripte (Abbildung 11.27). Wählen Sie im Bereich 'Übermittelt' Skript den Radiobutton Bibliothek und aus der Dropdown-Liste die Funktion ff_showsubmitted.
Nun können Sie das Formular in der Entwurfsansicht testen. Bei einer falschen Eingabe der E-Mail-Adresse, z. B. ohne das »@«-Zeichen, sollte die Java-Script-Meldung aus Abbildung 11.28 erscheinen.
Bei der richtigen Eingabe erhalten Sie eine positive Meldung (Abbildung 11.29).
Achtung: Falls Sie beim Abschicken die Fehlermeldung »send mail failed: could not instantiate mail function« erhalten, sollten Sie in der Global Configuration · Mail den Modus (php, sendmail oder smtp) auf smtp oder sendmail umstellen (vgl. auch Abschnitt 8.4, Mail-Versand).
|
|