Formulare

Aufgabe 1: Warenrücksendung

Implementieren Sie das folgende Formular für die Abwicklung einer Warenrücksendung. Die Anordnung der Formularelemente kann einfach mit Hilfe einer HTML-Tabelle erfolgen. Die Formulardaten brauchen vor dem Abschicken nicht überprüft zu werden.

Rücksendeformular
Abb. 1: Rücksendeformular

Das Formular erfragt unterschiedliche Kunden- und Artikeldaten, wie z. B. den Kundennamen und die -adresse. Um das Ausfüllen des Formulars zu vereinfachen, können die Daten durch Eingeben einer Kundenkennung aus einer Datenbank abgefragt werden:

Rücksendeformular mit Kundennummer
Abb. 2: Rücksendeformular mit Kundennummer

Wird der zum Feld der Kennung gehörende Button gedrückt, hier: Kunde suchen, so wird mittels JavaScript geprüft, ob in der Datenbank zu der eingegebenen Kennung Kundendaten existieren. Dabei muss berücksichtigt werden, dass HTML-Buttons per Voreinstellung submit-Buttons sind, d. h. type="submit". Damit nach Drücken des Buttons nach einem Datenbankeintrag gesucht und nicht das Formular abgeschickt wird, muss der Typ des Buttons button sein, d. h. type="button".

Wird in der Datenbank ein passender Eintrag gefunden, so werden die Felder für den Vor- und Nachnamen, für die Email und die Adresse mit den vorliegenden Daten automatisch ausgefüllt und unterhalb des Formulars eine Erfolgsmeldung ausgegeben:

Rücksendeformular mit gefundenen Daten
Abb. 3: Rücksendeformular mit gefundenen Daten

Gleiches gilt für Katalogartikel. Wird die Kennung eines Artikels eingegeben und der Button Artikel suchen gedrückt, so werden die Artikeldaten automatisch eingefüllt, sofern die Artikelkennung in der Datenbank gefunden wird:

Rücksendeformular komplett mit Daten ausgefüllt
Abb. 4: Ausgefülltes Rücksendeformular

Gegeben seien die folgenden zwei Kundendaten:

Kundenkennung: MM-SN1-1234-MB
Name: Markus Mustermann
Email: markus@mustermann.de
Adresse: Musterstr. 1, 89075 Ulm

Kundenkennung: MF-SN2-5678-MB
Name: Marianne Musterfrau
Email: marianne@musterfrau.de
Adresse: Bergstr. 1, 89073 Ulm     

Sowie die folgenden zwei Artikeldaten:

Artikelkennung: SP-HT-1
Artikelbezeichnung: Smartphone HuiTec HT1

Artikelkennung: TV-SM-2
Artikelbezeichnung: SmartTec TV STV2

Das Arbeiten mit einer echten Datenbank würde den Rahmen des Kurses sprengen. Deswegen wird diese mit Hilfe von JSON-Dateien simuliert, die die Kunden- und Artikeldaten enthalten. Erzeugen Sie also auf der Grundlage der oben gegebenen Daten zwei JSON-Dateien mit den Namen Kundendaten.json und Artikeldaten.json, die Felder von Objektliteralen enthalten. Lesen Sie die Daten aus den Dateien in zwei Felder für die Kunden- und Artikelobjekte ein. Durchsuchen Sie diese Felder mit Schleifen nach den eingegebenen Kennungen, wenn die Buttons Kunde suchen bzw. Artikel suchen gedrückt werden. Entnehmen Sie die Daten schließlich aus den passenden Feldelementen.

Im Produktiveinsatz wäre eine derartig einfache Lösung aus datenschutzrechtlichen Gründen nicht möglich, da diese potentiellen Angreifern den Zugriff auf alle Kunden- und Artikeldaten gestatten würde. Die JSON-Daten würden dann nicht komplett als Inhalt einer Datei geliefert, sondern wären das Ergebnis einer Datenbankanfrage. Dabei würde die Selektion passender Daten schon in der Datenbank geschehen.

Aufgabe 2: Visitenkarte

Implementieren Sie das Beispiel aus der Vorlesung zur Überprüfung eines Visitenkartenformulars. Sofern beim Aufruf der zugehörenden Seite Formulardaten empfangen wurden, werden diese in decodierter Form in die Webseite ausgegeben.

Aufgabe 3: Bestellformular

Implementieren Sie das folgende Bestellformular:

Bild des Bestellformulars
Abb. 5: Bestellformular

Die Anordnung der Bedienelemente kann wieder durch eine HTML-Tabelle erfolgen.

Nach Drücken auf Abschicken wird das Formular mit Hilfe von JavaScript nach den folgenden Kriterien überprüft:

  1. Wurden alle Textfelder ausgefüllt und eine Zahlungsweise gewählt? Mögliche Zahlungsweisen sind "Kreditkarte", "Rechnung" und "Vorauskasse". Voreingestellt ist der Wert "Bitte wählen", der für den Fall einer noch nicht gewählten Zahlungsweise steht.

  2. Wurden die allgemeinen Geschäftsbedingungen (AGB) akzeptiert und der Newsletter abonniert oder nicht?

  3. Wurde eine korrekte Email-Adresse eingegeben? Neben den HTML5-spezifischen Überprüfungen soll hier insbesondere geprüft werden, ob die Adresse mit .de endet, da nur Kunden aus Deutschland beliefert werden sollen. Nutzen Sie hier das HTML5-Email-Element.

  4. Probieren Sie insbesondere bei der Check Box für die AGB die zwei verschiedenen Prüfmechanismen aus: Einmal durch HTML5 und einmal mittels JavaScript.

Fehler beim Ausfüllen werden durch ein Ausgabefeld unterhalb des Formulars signalisiert, sodass ein völlig unausgefülltes Formular z. B. folgende Ausgabe liefert:

Bild eines unausgefüllten Formulars
Abb. 6: Unausgefülltes Bestellformular