Hallo,
für einen Fragebogen möchte ich gerne 20 Items aus 2 Fragen anzeigen (jeweils 10 pro Frage), die abhängig von den Antworten auf andere vorherige Fragen/ Items aber in sich zufällig ausgewählt werden sollen.
Es geht dabei um die Fragen MB01/ MB02 und die darauffolgenden, zugehörigen Fragen MA01/ MA02. Die Fragen haben jeweils dieselbe Anzahl an Items und beziehen sich aufeinander (Heißt MA01_01 ist die Folgefrage für MB01_01).
Der Fragebogenaufbau sieht dabei wiefolgt aus:
Zunächst beantworten die Teilnehmenden alle Items von MB01/ MB02, die mit dem folgenden Code durchmischt, randomisiert und über zwei Seiten verteilt dargeboten werden:
if (!isset($itemBlocks)) {
$questions = ['MB01', 'MB02'];
// Liste mit allen Items erstellen
$items = [];
foreach ($questions as $qstID) {
$qstItems = getItems($qstID, 'all');
foreach ($qstItems as $itemID) {
$items[] = [$qstID, $itemID];
}
}
// Liste mischen
shuffle($items);
//Liste abrufen
$itemBlocks = array_chunk($items, 21);
registerVariable($itemBlocks);
}
// Auf mehreren Seiten präsentieren
$i = loopPage(count($itemBlocks));
// Fragetext anzeigen
question('MB01', 'spacing=0', 'show-items=no');
// Items anzeigen
$items = $itemBlocks[$i];
foreach ($items as $n => $item) {
if ($n == 0) {
question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no', 'shading=all-shaded');
} elseif ($n % 2 == 0) {
question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'anchor=none', 'show-explanation=no', 'shading=all-shaded');
} else {
question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'anchor=none', 'show-explanation=no', 'shading=all-unshaded');
}
}
Als Nächstes sollen nun aus MA01 und MA02 jeweils 10 Items gezeigt werden. Diese sollen zufällig aus dem Pool der Items gezogen werden, die bei den entsprechenden MB01/MB02-Items mit >1 beantwortet wurden.
(Heißt wenn MB01_03 mit >1 beantwortet wurde kommt MA01_03 als eins von den 10 MA01 Items in Frage)
Mit dem folgenden Code habe ich dies versucht:
//random list of immoral behavior (answered >1)
$immoral = random_items(getItems('MB01', 'min', 2), 10);
registerVariable($immoral);
//random list of moral behavior (answered >1)
$moral = random_items(getItems('MB02', 'min', 2), 10);
registerVariable($moral);
Die Inhalte dieser Variablen sehen wiefolgt aus:
Gibt es nun eine Möglichkeit, wie ich mit diesen Item-IDs aus MB01/MB02, die entsprechenden Items aus MA01/MA02 abrufen kann?
Ich hoffe meine Erklärungen waren verständlich, falls etwas unklar ist, versuche ich dies gerne nochmal genauer zu erläutern!
Vielen Dank für Ihre Hilfe!