In den erhobenen Daten gibt es zwei Arten von Variablen: Zum einen Verwaltungsinformationen wie die Fallnummer CASE
oder den Zeitpunkt wann das Interview begonnen wurde STARTED
(Zusätzliche Variablen in der Datenausgabe). Zum anderen die Antworten des Teilnehmers und damit verbundene Messungen (z.B. Reaktionszeiten). Die zweite Art von Variablen ist jeweils an einen Baustein des Fragenkatalogs geknüpft, z.B. an eine Frage oder das Item, welches beantwortet wurde. Darüber hinaus gibt es funktionale Bausteine, wie z.B. den Zufallsgenerator. Diese haben eine Kennung wie Fragen (z.B. AB01
) und sie können zugehörige Variablen im Datensatz besitzen.
Einer dieser funktionalen Bausteine sind „Interne Variablen“. Sie kommen immer dann zum Einsatz, wenn Daten im Datensatz gespeichert werden sollen, die über die regulären Fragen hinausgehen. Gängige Einsatzbereiche für interne Variablen sind:
Ein Baustein vom Typ „Interne Variablen“ hat ausschließlich die Funktion, zusätzliche Variablen im Datensatz bereitzustellen.
Sie können für jede Variable eine Beschreibung eintragen. Diese Beschreibung wird im Datensatz zur Beschriftung (Label) der Variable verwendet. Sie können hier auch zusätzliche Notizen ergänzen, z.B. „1=Kontrollgruppe, 2=EG viel, 3=EG wenig“)
Wichtig: Die Kennung einer internen Variable ist immer 7-stellig. Wenn der Baustein „Interne Variablen“ z.B. die Kennung IV01
hat, so trägt die erste Variable die Kennung IV01_01
. Variablen-Kennungen können Sie jederzeit auch in der Variablen-Übersicht nachsehen. Diese Kennung ist die ID, die Sie benutzen, wenn Sie Ihre interne Variable in zusätzlichem Code aufrufen wollen, nicht der Name, unter dem Sie die Variable angelegt haben.
Interne Variablen haben zwei Funktionen. Zum einen können Sie Werte speichern, die mittels PHP-Code ermittelt wurden. Dazu dienen v.a. die Funktionen put()
und urnDraw()
. Zum anderen können innerhalb einer Fragebogen-Seite Daten gespeichert werden, die mittels JavaScript im Fragebogen ermittelt wurden.
Um interne Variablen im PHP-Code zu verwenden, müssen diese lediglich im Fragenkatalog existieren. Sie sollten nicht in eine Fragebogen-Seite gezogen oder mittels question()
eingebunden werden (sonst besteht die Möglichkeit, dass Teilnehmer die Werte manipulieren).
Beispiel: Auf Seite 3 des Fragebogens wurde eine Skala SK01 mit 10 Items abgefragt. Der Fragebogen soll einen Mittelwertindex der Skala (Skalenindex) in die interne Variable IV01_01
speichern. Dafür würde auf Seite 4 folgender PHP-Code verwendet:
$index = valueMean('SK01'); put('IV01_01', $index);
Eine Reihe weiterer Anwendungen ist in der Referenz zur Funktion put()
nachzulesen.
Eine Sonderrolle nimmt die Randomisierung mit Urnen ein. Mit der Funktion urnDraw()
wird dabei aus einer Urne eine Kombination mehrerer Werte gezogen und in mehrere interne Variablen innerhalb eines Bausteins „Interne Variablen“ gespeichert.
Hinweis: put()
und urnDraw()
speichern die Werte sofort im Datensatz. Die Werte können daher noch auf derselben Fragebogen-Seite mittels value()
abgerufen werden.
Wird ein Baustein „Interne Variablen“ in eine Fragebogen-Seite hineingezogen, so werden innerhalb der Seite versteckte Formularelemente bereitgestellt. Diese können z.B. mittels JavaScript im Fragebogen mit Daten befüllt werden. Beim Klick auf „Weiter“ werden diese Daten an den Server übermittelt und im Datensatz gespeichert.
Die HTML-ID der versteckten Eingabefelder entspricht der Kennung der internen Variable.
Der folgende HTML- bzw. JavaScript-Code würde z.B. die Uhrzeit speichern, die auf dem Computer des Teilnehmers eingestellt ist/angezeigt wird. Dies kann hilfreich sein, wenn man über mehrere Zeitzonen hinweg erhebt. Voraussetzung ist, dass eine interne Variable „TN01_01“ im Fragenkatalog angelegt und über dem JavaScript-Code in den Fragebogen gezogen wurde.
<script type="text/javascript"> <!-- // Die aktuelle Systemzeit auslesen var date = new Date(); // Systemzeit als Stunden:Minuten formatieren var hours = String(date.getHours()); if (hours.length < 2) hours = "0" + hours; var minutes = String(date.getMinutes()); if (minutes.length < 2) minutes = "0" + minutes; var time = hours + ":" + minutes; // Das versteckte Eingabefeld identifizieren var input = document.getElementById("TN01_01"); // Den Wert hineinschreiben input.value = time; // --> </script>
Die Anwendung wird im Kapitel Eigene Formularelemente verwenden genauer beschrieben.