Guten Tag, wie unter der anderen Frage besprochen, schildere ich hier noch einmal die Stelle, an der ich nicht weiterkomme. Meine drei Codes für die Blockrandomisierung nach Altersgruppen sehen so aus. Der dritte Code ab $blocknummer = value('SZ22'); regelt die zufällige Zuteilung der Gruppen zu den Seiten-Blöcken mit unterschiedlichem Stimulusmaterial und Fragen. Vermutlich müsste er an die Blockrandomisierung angepasst werden, aber ich weiß nicht wie.
Ich möchte, dass nur Gruppe 1 (20-35 Jahre) und Gruppe 2 (>= 65 Jahre) den Fragebogen bearbeiten. Gruppe 3 würde ich gern direkt zum Ende des Fragebogens leiten.
Code 1)
$age = value('AL01_01');
if ($age >= 20 && $age <= 35) {
$ageGroup = 1;
} elseif ($age >= 65) {
$ageGroup = 2;
} elseif ($age >= 36 && $age <= 64) {
$ageGroup = 3;
}
debug($ageGroup);
put('AL02_01', $ageGroup);
Code 2)
if (value('AL01_01') == 1) {
show('SZ22');
put('SZ24_01', value('SZ22'));
} elseif (value('AL01_01') == 2) {
show('SZ23');
put('SZ24_02', value('SZ23'));
} elseif (value('AL01_01') == 3) {
text('screenout');
buttonHide();
setPageOrder($gesamtliste, 'posttest');
}
Code 3)
$blocknummer = value('SZ22');
$blocks = [
1 => valueList('SZ19', null, 'label'),
2 => valueList('SZ20', null, 'label'),
3 => valueList('SZ21', null, 'label')
];
// Definieren der zusätzlichen, nicht rotierten 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');
Diese Fehlermeldung wird angezeigt:
Der Befehl put() kann nur in eine interne Variable speichern. Die
Frage EF03 ist nicht vom Typ "Interne Variablen".
„Die Variable SZ22 wurde im Laufe dieses Interviews auf keiner
vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen
Antwort-Wert ermitteln.“
„In der Funktion setPageOrder() wurde ein ungültiger Parameter vom Typ
NULL angegeben. Als Parameter sind entweder Strings (Texte) erlaubt
oder Arrays, die ausschließlich Strings enthalten.
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Undefined array key ""
Zeile: 17
PHP-Code
014 3 => ['ISZ5', 'ISZ6', 'ISZ7', 'ISZ8', 'ISZ9']
015 ];
016
017 $gesamtliste = $blocks[$blocknummer];
018
019
020“
Ich habe auf Seite 2 die Altersabfrage AL01 und interne Variable AL02_01. Auf Seite 3 stehen die drei PHP-Codes. Ab Seite 4 kommen die Blöcke, auf die die Gruppen zugeteilt werden sollen. SZ24_01 und SZ24_02 sind interne Variablen, in die die gezogenen Zufallszahlen kopiert werden sollen.