Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
de:create:inputs-custom [01.10.2011 17:42] – [Einschränkungen] admin | de:create:inputs-custom [28.11.2014 11:32] – admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Eigene Formularelemente verwenden ====== | ====== Eigene Formularelemente verwenden ====== | ||
- | oFb bietet zwar eine große Auswahl von Fragetypen - mitunter lässt sich eine Frage aber nicht mithilfe der vorgefertigten Module realisieren. Für diesen Fall unterstützt oFb das Einlesen benutzerdefinierter Formularelemente. | + | SoSci Survey |
**Tipp:** Bevor Sie mit der Programmierung eigener Formulare anfangen, prüfen Sie bitte auch einfachere Möglichkeiten unter [[de: | **Tipp:** Bevor Sie mit der Programmierung eigener Formulare anfangen, prüfen Sie bitte auch einfachere Möglichkeiten unter [[de: | ||
Zeile 8: | Zeile 8: | ||
Es liegt also nahe, oFb mitzuteilen, | Es liegt also nahe, oFb mitzuteilen, | ||
+ | |||
===== Einschränkungen ===== | ===== Einschränkungen ===== | ||
- | Bei der Verwendung benutzerdefinierter Formularelemente gibt es eine wesentliche | + | Bei der Verwendung benutzerdefinierter Formularelemente gibt es zwei wesentliche |
+ | |||
+ | - Die Bedeutung der Werte (i.d.R. Zahlencodes) wird nicht im Datensatz gespeichert. Während bei einer gewöhnlichen Auswahl-Frage z.B. hinterlegt sein könnte, dass die 1 für " | ||
+ | - Wenn Sie dem Teilnehmer einen Zurück-Knopf anbieten oder die Seite bei unvollständigen Angaben wiederholt wird, müssen Sie sich darum kümmern, dass Ihr Formularelement eine vorher gegebene Antwort anzeigt. Dazu können Sie den Wert mittels '' | ||
- | Wenn Sie dem Teilnehmer einen Zurück-Knopf anbieten oder die Seite bei unvollständigen Angaben wiederholt wird, müssen Sie sich darum kümmern, dass Ihr Formularelement eine vorher gegebene Antwort anzeigt. Dazu können Sie den Wert mittels '' | ||
===== Umsetzung ===== | ===== Umsetzung ===== | ||
Zeile 112: | Zeile 116: | ||
**Tipp:** Wenn Sie eine fertige Fragebogen-Seite im Browser ansehen, können Sie sich dort auch einfach den HTML-Quellcode anzeigen lassen. Den Quellcode für eine bestimmte Frage finden Sie ganz einfach, indem Sie nach der Frage-Kennung suchen. | **Tipp:** Wenn Sie eine fertige Fragebogen-Seite im Browser ansehen, können Sie sich dort auch einfach den HTML-Quellcode anzeigen lassen. Den Quellcode für eine bestimmte Frage finden Sie ganz einfach, indem Sie nach der Frage-Kennung suchen. | ||
+ | |||
+ | ===== Variante JavaScript ===== | ||
+ | |||
+ | Die oben skizzierte Lösung geht davon aus, dass der Wert aus einem benutzerdefinierten Eingabeelement (''< | ||
+ | |||
+ | Möglicherweise möchten Sie aber gar kein solches Eingabefeld anlegen, sondern einen Wert mittels JavaScript ermitteln und diesen in den Datensatz übertragen. In diesem Fall sind zwei Änderungen notwendig: | ||
+ | |||
+ | - Entfernen Sie das '' | ||
+ | - Ziehen Sie stattdessen die Frage vom Typ " | ||
+ | |||
+ | Falls Sie nur einige Variablen der Frage benötigen, legen Sie dies als //Items anzeigen// mit dem {{: | ||
+ | |||
+ | Wenn Sie die Frage in den Fragebogen einbinden, sehen Sie optisch keine Veränderung. Allerdings wird für jede interne Variable ein verstecktes Eingabefeld ('' | ||
+ | |||
+ | <code php> | ||
+ | // Frage vom Typ " | ||
+ | // nur Variablen 1 und 2 einbinden | ||
+ | question(' | ||
+ | </ | ||
+ | |||
+ | <code html> | ||
+ | <script type=" | ||
+ | <!-- | ||
+ | // Wert in Variable 1 speichern | ||
+ | document.getElementById(" | ||
+ | |||
+ | // Wert in Variable 2 um 10 erhöhen | ||
+ | var input2 = document.getElementById(" | ||
+ | var curVal = parseInt(Wert .value); | ||
+ | if (isNaN(curVal)) { | ||
+ | input2.value = 10; | ||
+ | } else { | ||
+ | input2.value = curVal + 10; | ||
+ | } | ||
+ | // --> | ||
+ | </ | ||
+ | </ | ||
===== Fazit ===== | ===== Fazit ===== | ||
Mit diesem Werkzeug erhält man sehr viel Freiheit bei der Gestaltung des Fragebogens -- der Aufwand zum Programmieren der Formularelemente kann allerdings schnell ausarten. Deshalb bietet oFb die meisten Fragen eben schon fertig an. | Mit diesem Werkzeug erhält man sehr viel Freiheit bei der Gestaltung des Fragebogens -- der Aufwand zum Programmieren der Formularelemente kann allerdings schnell ausarten. Deshalb bietet oFb die meisten Fragen eben schon fertig an. |