Auge: Formular Fragen je nach Antwort einblenden

Beitrag lesen

Hallo

Meine Problematik:

Ich habe mit PHP ein Formular konzipiert, dass aus verschiedenen Fragen besteht, die mittels Radiobutton beantwortet werden können. Mein Problem liegt jetzt darin, dass abhängig von der Antwort der ersten Frage, die zweite Frage angezeigt werden soll.

Bsp:
Welche Wissenstand haben sie?
<INPUT type=radio name="skill" value=beginner>Beginner.<br>
<INPUT type=radio name="skill" value=intermediate>Normal <br>
<INPUT type=radio name="skill" value=adavanced>Fortgeschritten <br>

Wenn jetzt "Beginner" ausgewählt wird, könnte dann z.B. die nächste Frage lauten:
Sind sie schon einmal mit einem Auto gefahren?

Wäre die Antwort "Normal", könnte die Frage lauten:
Wissen sie, was ein Katalysator ist?

Meine Frage lautet also: Wie kann ich dynamisch Text auf einer Seite anzeigen, abhängig davon welche Antwort in der vorherigen Frage gewählt wurde.

Plan 1: Stelle die Fragen, die entscheiden, welche Fragen hernach zum Einsatz kommen, in einem eigenen Forumlar in einem eigenen Dokument und sende ersteres ab, um bei dessen Verarbeitung serverseitig zu entscheiden, was als nächstes passiert.

Plan 2: Sende die Antwort auf die Fragen, die entscheiden, welche Fragen hernach zum Einsatz kommen, per Ajax an den Server und lasse dir den HTML-Quelltext für die nächsten, aus der Antwort auf die erste Frage resultierenden, Fragen zurücksenden und anzeigen.

Plan 3: Alle möglichen Fragen werden in einer geeigneten Form in einem JavaScript-Array im Kopf des Dokuments gespeichert. Je nach der Antwort auf die Fragen, die entscheiden, welche Fragen hernach zum Einsatz kommen, werden dann die entsprechenden weiteren Fragen in das Dokument eingefügt.

Die Pläne 2 und 3 verlassen sich darauf, dass JavaScript aktiviert ist. Plan 1 ist in der Handhabung (je nach Umfang des Fragenkatalogs) eventuell umständlich, bedarf aber keiner besonderen Voraussetzungen im Browser.

Stichworte für die Suche wären Session, Ajax und DOM (unter der Voraussetzung, dass du PHP zur Auswertung und Ausgabegenerierung beherrschst).

Zu guter Letzt, bevor jemand das Fehlen dieser "Alternative" bemängelt:
Du kannst auch das *vollständige* Formular mit allen möglichen Fragen an den Browser schicken und dort per JavaScript erstmal alle Fragen bis auf die, die entscheiden, welche Fragen hernach zum Einsatz kommen, ausblenden. Jenachdem, wie die Antworten auf diese Fragen ausfallen, blendest du die entsprechenden anderen Fragen ein.

Meiner Meinung nach ist dies aber _keine_ Alternative, da bei nicht aktiviertem JavaScript alles sichtbar bleibt und der Nutzer *höchstwahrscheinlich* nicht sauber durch den katalog geführt werden kann (er kann ja nun auch auf Fragen antworten, die ihm normalerweise unzugänglich blieben). Es gibt Anwendungsfälle, bei denen das unerheblich ist, aber eben auch viele, wo das eben doch eine Rolle spielt.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
Veranstaltungsdatenbank Vdb 0.3