Hallo,
Ich habe 2 Rubriken (PK, KE) erstellt. PK hat 3 Fragen (PK01, PK02, PK03), KE nur 1 (KE01).
Nun möchte ich gern alle dazugehörigen Items zufällig mischen. Pro Seite sollen 20 Items sein und oben drüber immer die Skala von 1-6 & Fragestellung (Alles hat die selbe Skala/Fragestellung).
Dafür habe ich folgenden PHP-Code verwendet:
if (!isset($itemBlocks)) {
$questions = ['PK01', 'PK02', 'PK03', 'KE01'];
// Liste mit allen Items erstellen
$items = [];
foreach ($questions as $qstID) {
$qstItems = getItems($qstID, 'all');
foreach ($qstItem as $itemID) {
$items[] = [$qstID, $itemID];
}
}
// Liste mischen
shuffle($items);
// Liste aufteilen
$itemBlocks = array_chunk($items,20);
registerVariable($itemBlocks);
}
// Auf mehreren Seiten präsentieren
$i = loopPage(count($itemBlocks));
// Fragetext anzeigen
question('PK01', 'spacing=0', 'show-items=no');
// Items anzeigen
$items = $itemBlocks[$i];
foreach ($items as $item) {
question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no');
}
Dort bekomme ich aber folgende Fehlermeldungen:
-Fehler im Fragebogen: Invalid argument supplied for foreach()
Zeile: 9
PHP-Code
006 $items = [];
007 foreach ($questions as $qstID) {
008 $qstItems = getItems($qstID, 'all');
009 foreach ($qstItem as $itemID) {
010 $items[] = [$qstID, $itemID];
011 }
012 }
Fehler im Fragebogen: Die PHP-Variable $qstItem wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).
-Fehler im Fragebogen: Undefined offset: 0
Zeile: 28
PHP-Code
025 question('PK01', 'spacing=0', 'show-items=no');
026
027
028 $items = $itemBlocks[$i];
029 foreach ($items as $item) {
030 question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no');
031 }
-Fehler im Fragebogen: Invalid argument supplied for foreach()
Zeile: 29
PHP-Code
026
027
028 $items = $itemBlocks[$i];
029 foreach ($items as $item) {
030 question($item[0], [$item[1]], 'spacing=0', 'show-title=no', 'show-explanation=no');
031 }
032 return 'ok';
Kann mir da jemand weiterhelfen, was ich da ändern muss?
Ich komme leider wirklich nicht weiter..