====== 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();