Guten Abend, wie kann ich eine Blockrandomisierung bei zwei Altersgruppen (20-35 Jahre und 65 Jahre und älter) einstellen?
Bisher habe ich die Gruppen definiert und sie den zwei Zufallsgeneratoren zugeordnet, die dann zu einem von drei Blöcken randomisiert weiterleiten:
$age = value('EF03_01');
if ($age >= 20 && $age <= 35) { $group = 1;
} elseif ($age >= 65) { $group = 2;
} elseif ($age >= 36 && $age <= 64) {
$group = 3;
}
if (value('EF03_01') == 1) {
show('SZ22');
} elseif (value('EF03_01') == 2) {
show('SZ23');
} elseif (value('EF03_01') == 3) {
text('screenout');
buttonHide();
setPageOrder($gesamtliste, 'posttest');
}
Ich brauche eigentlich nur Gruppe 1 (20-35 Jahre) und Gruppe 2 (>= 65 Jahre). Gruppe 3 würde ich gern direkt zum Ende des Fragebogens leiten.
Entferne ich laut SoSci-Anleitung alle Zufallsgeneratoren aus dem Fragebogen, wird jede Seite des gesamten Fragebogens angezeigt und nichts mehr randomisiert. Dann diese Meldung: „Die Variable SZ22 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.“
Und dieser Hinweis:
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Undefined array key ""
Zeile: 16
PHP-Code
013 3 => ['ISZ5', 'ISZ6', 'ISZ7', 'ISZ8', 'ISZ9']
014 ];
015
016 $gesamtliste = $blocks[$blocknummer];
017
018
019 if (isset($additionalPages[$blocknummer])) {
Vermutlich aufgrund des Codes unten, der auf der Seite geblieben ist, von der die Zufallsgeneratoren entfernt wurden (eine Seite nach Altersabfrage). Welche Blocknummer muss ich definieren? Und sitzt der Code an der richtigen Stelle im Fragebogen?
$blocknummer = value('SZ22');
$blocks = [
1 => valueList('SZ19', null, 'label'),
2 => valueList('SZ20', null, 'label'),
3 => valueList('SZ21', null, 'label')
];
// Definieren Sie die zusätzlichen Seiten für jeden Block
$additionalPages = [
1 => ['SSZ5', 'SSZ6', 'SSZ7', 'SSZ8', 'SSZ9'],
2 => ['KSZ5', 'KSZ6', 'KSZ7', 'KSZ8', 'KSZ9'],
3 => ['ISZ5', 'ISZ6', 'ISZ7', 'ISZ8', 'ISZ9']
];
$gesamtliste = $blocks['blocknummer'];
if (isset($additionalPages[$blocknummer])) {
$additionalPagesForBlock = $additionalPages[$blocknummer];
$gesamtliste = array_merge($gesamtliste, $additionalPagesForBlock);
}
setPageOrder($gesamtliste, 'posttest');