0 votes
in SoSci Survey (dt.) by s249263 (120 points)
edited by SoSci Survey

Hallo :)

Mein Fragebogen besteht aus mehreren Blöcken aus denen randomisiert Fragen gezogen werden sollen. Allerdings überschneiden sich zwischen den Blöcken bestimmte Inhalte, sodass ich möchte, dass wenn in Block 1 ein bestimmter Inhalt gezogen wird, dass in Block zwei der ähnliche Inhalt nicht gezogen werden kann. Ich habe die bestimmten Inhalte die sich überschneiden immer zwei verschiedenen Zufallsgeneratoren zugewiesen und hier ist mein folgender code für die ersten zwei Blöcke:

question('KA01');
$rand = valueList('KA01', NULL, 'label');

if (
    ($rand == '111-114' || $rand == '121-124' || $rand == '131-134'|| $rand == '141-144') ||
    ($rand == '151-154' || $rand == '161-164' || $rand == '171-174'|| $rand == '181-184')
) {
    question('KA09');
    $fand = valueList('KA09', NULL, 'label');
} else {
    question('KA10');
    $fand = valueList('KA10', NULL, 'label');
}

$meh = array($rand, $fand);

setPageOrder($meh, 'ende');

folgender Debug Code dazu:

[Information]	Interview gestartet (neue Nummer 212)
[Information]	Der Fragebogen nooiiiischowieder im Projekt ChatbotWahrnehmung wird verwendet
[Verarbeitung]	Erstelle Seite 269 in Fragebogen nooiiiischowieder
[Inhalt]	Erstelle Frage KA01
[Information]	Vom Zufallsgenerator KA01 wurden folgende Codes gezogen: 4
[Information]	valueList(KA01) = Array [KA01:141-144]
[Inhalt]	Erstelle Frage KA10
[Information]	Vom Zufallsgenerator KA10 wurden folgende Codes gezogen: 2
[Information]	valueList(KA10) = Array [KA10:221-224]

ich habe ja eigentlich angegeben, dass bei 141 die Frage KA09 ausgeführt werden soll.... wieso wird hier trotzdem Frage KA10 ausgeführt?

Oder sollte man seperat zwei if...else funktionen definieren?

Danke schonmal für eine Antwort!
LG

1 Answer

0 votes
by SoSci Survey (327k points)

Die Funktion valueList() liefert keinen einzelnen Wert, sondern eine Liste von Werten - das ist dann sinnvoll, wenn Ihr Zufallsgenerator mehrere Codes pro Interview zieht.

Der Vergleich mit einem String sollte aber immer false ergeben.

Ersetzen Sie, wenn Sie nur einen Wert pro Interview und Zufallsgenerator ziehen, daher bitte

$rand = valueList('KA01', NULL, 'label');

durch

$rand = value('KA01', 'label');

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...