====== Antwort in späteren Fragen verwenden ======
Eine der größten Vorteile eines elektronischen Fragebogens ist, dass er dynamisch auf Antworten des Teilnehmer reagieren kann. Dieses Kapitel liefert einen kurzen Überblick.
===== Filterfragen =====
Filterfragen -- das heißt im einfachsten Fall, dass abhängig von der Antwort des Teilnehmers ("Nutzen Sie Facebook?") im späteren Verlauf des Fragebogens Fragen/Items angezeigt oder ausgeblendet werden. In einigen Fällen wird der Teilnehmer auch von der weiteren Teilnahme ausgeschlossen (Screenout).
* [[:de:create:filters]]\\ Ausführliche Einführung in Filterfragen
* ''[[:de:create:functions:pagestop]]''\\ Die Referenz dieser Funktion enthält ein Beispiel für einen Screenout-Filter.
==== Ausgewählte Items zeigen ====
Ein Spezielfall von Filterfragen ist die Übernahme ausgewählter Items in eine andere Frage.
Beispiel: In einer Mehrfachauswahl werden jene Online-Dienste abgefragt, die ein Teilnehmer nutzt. Später soll dann dann in einer Skala abgefragt werden, wie häufig er die ausgewählten Dienste nutzt.
* [[:de:create:filter-items]]
==== Filter auf der gleichen Seite ====
Mitunter möchte man nicht warten, bis der Teilnehmer auf "Weiter" klickt, sondern bei der Auswahl einer Antwort soll sofort eine andere Frage ein-/ausgeblendet werden.
* [[:de:create:dynamic]]
* [[:de:create:questions:extselect]]\\ Ein Fragetyp, der automatisch untergeordnete Optionen zu einer Option einblenden kann
* [[:de:create:questions:assignment]]\\ Bei diesem Fragetyp können weitere Items in Abhängigkeit der Antwort automatisch ein-/ausgeblendet werden.
===== Antworten anzeigen =====
Der Teilnehmer hat eine Antwort ausgewählt ([[:de:create:questions:select]]) oder eingetippt ([[:de:create:questions:text]], [[:de:create:questions:suggest]]) -- und diese Antwort soll später im Fragebogen im Text, in einer Frage oder in Items auftauchen.
Mit [[:de:create:placeholders|Platzhaltern]] können Textschnipsel an beliebiger Stelle dynamisch ausgetauscht werden. Sobald ein Platzhalter definiert wurde, steht es im gesamten folgenden Fragebogen zur Verfügung.
* [[:de:create:transfer-responses]]
===== Mehrere Befragungswellen =====
Bei mehrwelligen Befragungen sollten dem Teilnehmer unter Umständen Antworten aus einer früheren Befragungswelle angezeigt werden. Die Umsetzung hängt davon ab, wie man die mehrwellige Erhebung technisch gestaltet hat.
* **Unterbrecherseiten** -- dokumentiert in der Referenz zu ''[[:de:create:functions:mailresume]]''\\ Wenn es sich technisch um einen Fragebogen handelt, der für den Teilnehmer einfach nur in mehreren Etappen angezeigt wird, so können ''[[:de:create:functions:value]]'' und ''[[:de:create:functions:replace]]'' wie gewohnt verwendet werden. In einer Welle definierte Platzhalter stehe auch in späteren Wellen zur Verfügung.
* **Unterschiedliche Fragebögen** -- unter Verwendung von [[:de:survey:mailing|Serienmails]]\\ Sollen Daten zwischen unterschiedlichen Interviews übermittelt werden, funktioniert dies über die [[:de:create:databank]]. Dazu müssen die relevanten Angaben in der ersten Erhebung mittels ''[[:de:create:functions:dbset]]'' gespeichert und in späteren Erhebungen mittels ''[[:de:create:functions:dbget]]'' abgerufen werden.
Das nachfolgende Beispiel zeigt die Übermittlung von Antworten aus Interview A ins spätere Interview B. Voraussetzung ist, dass die Teilnehmer mittels [[:de:survey:mailing|Serienmails]] zu beiden Befragungswellen eingeladen wurden -- oder dass sie anderweitig personalisierte Links mit einem Teilnahmecode erhalten ([[:de:survey:url]]).
Im ersten Fragebogen sollen die Antworten auf die Auswahlfrage ''AF01'' und die offene Texteingabe ''TX01_01'' für die spätere Verwendung abgespeichert werden. Als Schlüssel zum Speichern wird dabei die Teilnehmerkennung aus Variable ''SERIAL'' verwendet ([[:de:results:variables]], ''[[:de:create:functions:caseserial]]'').
$key = caseSerial();
$data = array(
value('AF01', 'free'),
value('TX01_01')
);
dbSet($key, $data);
Im zweiten Fragebogen werden diese Daten dann mittels ''dbGet()'' wieder abgerufen und mittels ''replace()'' in Platzhalter geschrieben, die dann in Frage-/Itemtexten verwendet werden können:
$key = caseSerial();
$data = dbGet($key);
replace('%auswahl%', $data[0]);
replace('%texteingabe%', $data[1]);
**Tipp:** Zum Verständnis des PHP-Codes ist das Kapitel [[:de:create:array]] hilfreich.
**Tipp:** Falls Sie die Datenbank für Inhalte im Befragungsprojekt noch anderweitig nutzen möchten, stellen Sie dem Schlüssel einfach ein Präfix voran. Ersetzen Sie die Zeile mit ''$key ='' in beiden Codes etwa durch...
$key = 'DT-'.caseSerial();