Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
de:create:random_questionnaire [25.03.2021 20:27] – [Zufallsauswahl für Fragebögen] sophia.schauer | de:create:random_questionnaire [22.06.2024 09:46] (aktuell) – admin |
---|
Zunächst legen Sie unter **Fragebogen zusammenstellen** -> **Neuen Fragebogen erstellen** einen zusätzlichen Fragebogen an, welcher sich um die zufällige Verteilung kümmert. Die Kennung können Sie frei wählen, für die folgende Beschreibung verwenden wir die Kennung "random". | Zunächst legen Sie unter **Fragebogen zusammenstellen** -> **Neuen Fragebogen erstellen** einen zusätzlichen Fragebogen an, welcher sich um die zufällige Verteilung kümmert. Die Kennung können Sie frei wählen, für die folgende Beschreibung verwenden wir die Kennung "random". |
| |
Legen Sie diesen Fragebogen unter **Fragebogen zusammenstellen** -> **Fragebögen verwalten** als Standard-Fragebogen fest. | Legen Sie diesen Fragebogen "random" unter **Fragebogen zusammenstellen** -> **Fragebögen verwalten** als Standard-Fragebogen fest. |
| |
{{:de:create:scr.random-questionnaire.questionnaires.png|Fragebögen für die Zufallsauswahl}} | {{:de:create:scr.random-questionnaire.questionnaires.png|Fragebögen für die Zufallsauswahl}} |
Sobald ''[[:de:create:functions:gotoquestionnaire]]'' zum Einsatz kommt, wird ein neuer Fall im Datensatz erzeugt. In diesem (neuen) Interview hat man keinen Zugriff mehr auf die Daten, die im ursprünglichen Fragebogen (hier z.B. "random") erhoben wurden. Das gilt auch für einen Teilnahmecode, der eventuell via URL vom Panel-Anbieter übergeben wurde. | Sobald ''[[:de:create:functions:gotoquestionnaire]]'' zum Einsatz kommt, wird ein neuer Fall im Datensatz erzeugt. In diesem (neuen) Interview hat man keinen Zugriff mehr auf die Daten, die im ursprünglichen Fragebogen (hier z.B. "random") erhoben wurden. Das gilt auch für einen Teilnahmecode, der eventuell via URL vom Panel-Anbieter übergeben wurde. |
| |
Damit es dennoch funktioniert, muss man den Teilnahmecode explizit an das untergeordnete Interview durchreichen. Dafür kommt die Funktion ''[[:de:create:functions:multileveldown]]'' zum Einsatz. Wenn der Teilnahmecode als Referenz (REF) übergeben wurde, würde das aussehen wie folgt. | Damit es dennoch funktioniert, muss man den Teilnahmecode explizit an das untergeordnete Interview durchreichen. Dafür kommt die Funktion ''[[:de:create:functions:multileveldown]]'' zum Einsatz. Wenn der Teilnahmecode als Referenz (REF) übergeben wurde, würden Sie die Zeilen (s. oben) |
| |
| <code php> |
| $qnr = value('RF01', 'label'); |
| goToQuestionnaire($qnr); |
| </code> |
| |
| __ersetzen__ durch |
| |
<code php> | <code php> |
</code> | </code> |
| |
Im untergeordneten Fragebogen kann man dann mittels ''[[:de:create:functions:multileveldata]]'' auf den übergebenen Code zugreifen. Im Redirect würde dann nicht mehr direkt die Referenz verwendet ... | Im untergeordneten Fragebogen kann man dann mittels ''[[:de:create:functions:multileveldata]]'' auf den übergebenen Code zugreifen. Im Redirect auf der vorletzen Seite des Fragebogens würde dann __nicht mehr__ direkt die Referenz verwendet ... |
| |
<code php> | <code php> |
</code> | </code> |
| |
... sondern die Daten, die von ''multiLevelDown()'' übergeben wurde, also | ... sondern stattdessen die Daten, die von ''multiLevelDown()'' übergeben wurde, also |
| |
<code php> | <code php> |
redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.multiLevelData()); | redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.multiLevelData()); |
| </code> |
| |
| |
| ==== Mehrere Variablen übergeben ==== |
| |
| Fall neben der Panel-ID noch weitere Variablen übergeben werden sollen, können diese gemeinsam als [[:de:create:array|Array]] in ''multiLevelDown()'' an den nachgelagerten Fragebogen übergeben werden. |
| |
| Der nachfolgende Code verwendet String-Schlüssel für die Variablen (''%%'panelID'%%'', ''%%'userID'%%'' u.s.w.) -- das dient vor allem der besseren Verständlichkeit. |
| |
| <code php> |
| // Zufallsauswahl für einen Fragebogen |
| $qnr = value('RF01', 'label'); |
| // Daten zusammenfassen |
| $data = [ |
| 'panelID' => reference(), |
| 'userID' => value('RV01x01'), |
| 'AB01_01' => value('AB01_01'), |
| 'AB01_02' => value('AB01_02') |
| ]; |
| // Daten übergeben |
| multiLevelDown($qnr, $data); |
| </code> |
| |
| Um untergeordneten Fragebogen können die Daten wieder auf einzelne Variablen verteilt werden. |
| |
| <code php> |
| $data = multiLevelData(); |
| put('IV01_01', $data['panelID']); |
| put('IV01_02', $data['userID']); |
| // Die Filtervariablen werden hier direkt in die Filterfragen gespeichert |
| put('AB01_01', $data['AB01_01'], true); |
| put('AB01_02', $data['AB01_02'], true); |
| </code> |
| |
| Die Weiterleitung kann auf die in ''%%'IV01_01'%%'' abgelegte Panel-ID zugreifen. |
| |
| <code php> |
| redirect('https://www.panelanbieter.de/complete?xyz=ABCDEF&uid='.value('IV01_01')); |
</code> | </code> |