0 votes
in SoSci Survey (dt.) by s154461 (150 points)

Guten Tag! Ich würde gerne 18 Items zufällig anzeigen lassen. Diese Items sind unterschiedlichen Konstrukten zugeordnet weswegen es die Fragen wie z.B. AV01, F001 ect. gibt.
Wie kann ich auf jeder Seite 4 zufällig Items anzeigen lassen, bis alle Items angezeigt wurden (also 6 Seiten)?

Aktuell sieht mein Code so aus: (ich habe die Seitenaufteilung noch nicht umgesetzt)

$fragen = ['AV01', 'F001', 'G001', 'U001', 'CG01'];
$itemliste = [];
foreach ($fragen as $frage) {
foreach (getItems($frage, 'all') as $item) {
 $itemsliste[] = [$item];
}
}
shuffle($items);
question('Q001', $items);

Es gibt die Fehlermeldung: Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: shuffle() expects parameter 1 to be array, null given
Zeile: 10

PHP-Code

007 $itemsliste[] = [$item];
008 }
009 }
010 shuffle($items);
011 question('Q001', $items);
012 return 'ok';

Können Sie mir weiterhelfen?
Vielen Dank!

1 Answer

0 votes
by SoSci Survey (327k points)

Nachdem Ihre Items aus unterschiedlichen Fragen stammen, müsste Ihr Code ein wenig anders aussehen: Items aus unterschiedlichen Fragen rotieren

Womöglich ist es aber einfacher, die Items alle in dieselbe Frage zu kopieren.

Diese Items sind unterschiedlichen Konstrukten zugeordnet

Mein Vorschlag wäre dennoch, alle Items in eine Frage zu kopieren - Sie können dort immer noch die Variablen nach Ihren Konstrukten (um)benennen.

Fehler im Fragebogen: shuffle() expects parameter 1 to be array, null given
Zeile: 10

Dieser Fehler kommt zustande, weil Ihr Array $itemliste heißt und nicht $items. Aber unabhängig davon kann Ihr Code so nicht funktionieren, weil die Zuordnung Frage-Item im Array fehlt.

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

...