In einer Befragung zu unterschiedlichen Berufen soll bei einer Frage vom Typ "Skala (Zwischenwerte beschriftet)" abhängig von dem zufällig ausgewählten Beruf, der dem Befragten zugewiesen wird, eine unterschiedliche Zahl von Items angezeigt werden. Die Filterbedingung bezieht sich auf eine interne Variable, so dass nur ein PHP-Filter in Betracht kommt.
Die betreffende Frage enthält insgesamt 7 Items. Abhängig vom Wert der internen Variablen (Kennung des ausgewählten Berufs) sollen die Items 1 bis 4, 1 bis 5, 1 bis 6 oder alle Items angezeigt werden. Hierfür wurde folgender PHP-Code erstellt (A011_01 ist die interne Variable, B001 ist die Frage, die angezeigt werden soll):
if ((value('A011_01') == 4) or (value('A011_01') == 5) or (value('A011_01') == 29)) {
$items = array('1-4');
}
if ((value('A011_01') == 8) or (value('A011_01') == 13) or (value('A011_01') == 15) or (value ('A011_01') == 17) or (value('A011_01') == 19) or (value('A011_01') == 20) or (value('A011_01') == 21) or (value('A011_01') == 23) or (value('A011_01') == 24)) {
$items = array('1-6');
}
if ((value('A011_01') == 10) or (value('A011_01') == 14)) {
$items = array('1-7');
}
else {
$items = array('1-5');
}
question('B001', $items);
Bei der Erprobung hat sich gezeigt, dass diese Anweisung zwar grundsätzlich funktioniert, aber vereinzelt Darstellungsfehler auftreten. Es kommt vor, dass die Frage zu wenig oder zu viele Items anzeigt; bei anderen Durchläufen wird wiederum die richtige Zahl angezeigt. Die Darstellungsfehler scheinen zufällig aufzutreten, d.h. ein Zusammenhang mit bestimmten vorherigen Antworten oder ein sonstiges Muster ist nicht erkennbar. In den Debug-Informationen werden keine Hinweise auf Fehler angezeigt. Für Ratschläge zur Behebung des Problems wäre ich daher sehr dankbar.