====== Randomisierung von Fragen ======
Manchmal ist es notwendig ganze Fragen zu randomisieren. Dies gelingt mit Hilfe eines PHP-Codes. Die Einbindung des PHP-Codes zur Randomisierung ist aber bereits der 2. Schritt. Lesen Sie daher zunächst das Kapitel [[de:create:randomization-php|]]. Hier wird genau erklärt, wie Sie zunächst einen [[de:create:questions:random|]] erstellen und wo Sie den PHP-Code auf der Fragenbogenseite platzieren müssen.
Wenn der zu randomisierende Stimulus eine Frage ist, benötigt man die PHP-Funktionen [[de:create:functions:question|question()]] und [[de:create:functions:value|value()]]. Erstere wird benötigt, um zu definieren, welche Frage (AB01 oder AB02) angezeigt werden soll. value() wird benötigt, um den Wert des Zufallsgenerators auszulesen (=1,2 oder3?). Der Code könnte folgendermaßen aussehen:
if (value('RG01') == 2) {
question('AB01');
} elseif (value('RG01') == 3) {
question('AB02');
} else {
// Den else-Teil könnte man in diesem Fall weglassen,
// hier passiert rein gar nichts.
}
Der Wert 1 für den Zufallsgenerator (RG01) würde in diesem Fall keine Frage anzeigen, da der Teilnehmer der Kontrollgruppe zugeordnet wurde. Wenn der Wert RG01=2 gezogen wurde, wird die Frage AB01 angezeigt und bei dem Wert RG01=3 die Frage AB02. Die Fragekennungen für den Zufallsgenerator und die zu zeigenden Fragen müssen Sie ihrem Fragebogen individuell anpassen.
===== Stimulus und Frage zusammen =====
Man kann auch Fragen und Stimuli gemeinsam randomisieren. Dies ist der Fall, wenn man abhängig vom Stimulus auch unterschiedliche Fragen abfragen möchte.
$zahl = value('RG01');
if ($zahl == 1) {
text('stimulusA');
question('AB01');
} elseif ($zahl == 2) {
text('stimulusB');
question('AB01');
} elseif ($zahl == 3) {
text('stimulusC');
question('AB02');
} elseif ($zahl == 4) {
text('stimulusD');
question('AB02');
}
In dem Beispiel wird zum Stimulus A eine andere Frage (AB01) angezeigt, als zu den anderen Stimuli.
**Hinweis:** Wenn die Frage zu den Stimuli immer gleich ist, muss man diese nicht extra im Code angeben. In diesem Fall genügt es, wenn man die Frage einfach unter dem Stimulus oder auf der nächsten Fragebogenseite, unabhängig vom Filter platziert.
===== Stimulus und Frage auf unterschiedlichen Seiten =====
Falls der Stimulus und die (jeweils zugehörige) Frage auf unterschiedlichen Seiten gezeigt werden sollen, wird auf beiden Seiten ein Filter eingebaut. Wenn die Zufallszahl einmal gezogen wurde, steht sie (im Beispiel als Variable ''RG01'') auf allen folgenden Seiten zur Verfügung. Man braucht den Zufallsgenerator (oder die Urnen-Ziehung) also nur ein einziges Mal im Fragebogen zu platzieren, i.d.R. direkt vor dem ersten Filter.
// PHP-Code auf der Seite mit dem Stimulus
$zahl = value('RG01');
if ($zahl == 1) {
text('stimulusA');
} elseif ($zahl == 2) {
text('stimulusB');
} elseif ($zahl == 3) {
text('stimulusC');
} elseif ($zahl == 4) {
text('stimulusD');
}
// PHP-Code auf der Seite mit der Frage
$zahl = value('RG01');
if ($zahl == 1) {
question('AB01');
} elseif ($zahl == 2) {
question('AB01');
} elseif ($zahl == 3) {
question('AB02');
} elseif ($zahl == 4) {
question('AB02');
}
**Hinweis:** Diese Lösung ist natürlich __nicht__ erforderlich, wenn unabhängig vom Stimulus immer dieselbe Frage angezeigt wird.
**Tipp:** Mit dieser Variable können zusammengehörige Stimuli (z.B. Seite 1 bis 3 eines Zeitungsartikels) auf mehrere Seiten verteilt werden.
===== Fragen auf verschiedenen Seiten =====
Wenn die Fragen auf unterschiedlichen Seiten im Fragebogen erscheinen sollen muss man an zwei Stellen filtern:
//Auf der 1. Seite platzieren
$zahl = value('RG01'); // Auslesen der gezogenen Zufallszahl aus RG01
// Die eine oder die andere Frage zeigen
if ($zahl == 1) {
question('AB01');
} else {
question('AB03');
}
//Auf der 2. Seite platzieren
$zahl = value('RG01');
if ($zahl == 1) {
question('AB02');
} else {
question('AB04');
}
Im Beispiel wird nun zufällig entweder zuerst Frage AB01 und dann später AB02 angezeigt -- oder erst AB03 und dann AB04.
**Hinweis:** Auf diese Weise kann man auch verschiedene Befragungsgruppen erstellen, denen die selben Fragen nur in unterschiedlichen, aber festgelegten Reihenfolgen dargeboten werden sollen.
**Hinweis:** Wenn Sie ganze Seiten randomisieren möchten, kann ein diese Vorgehensweise schnell unübersichtlich werden. Lesen Sie hierfür das Kapitel [[de:create:randomization-page|]]!