Hallo Support,
ich benutze folgenden Code, um Items mehrerer Fragen über mehrere Seiten zu rotieren:
if (!isset($blocks)) {
$fragen = array('VA01', 'VA02', 'VA03', 'VA04');
$items = array();
foreach ($fragen as $frage) {
$itemsF = getItems($frage, 'all');
foreach ($itemsF as $itemID) {
$items[] = array($frage, $itemID);
}
}
shuffle($items);
$blocks = array_chunk($items, 6);
registerVariable($blocks);
}
$i = loopPage(count($blocks));
foreach ($blocks[$i] as $pos => $item) {
$frage = $item[0];
$itemID = $item[1];
if ($pos == 0) {
question($frage, $itemID, 'spacing=5');
} elseif ($pos == 9) {
question($frage, $itemID, 'anchor=none');
} else {
question($frage, $itemID, 'spacing=5', 'anchor=none');
}
}
Die Rotation bei einmaliger Verwendung funktioniert problemlos. Nun habe ich zwei weitere Probleme:
- Wenn ich diesen Code auf mehreren Seiten verwenden möchte (jeweils mit anderen Fragen-Arrays, die sich nicht doppeln), taucht ein Hinweis auf.
Dieser erscheint, nachdem alle 12 Items randomisiert korrekt auf zwei Seiten dargestellt wurden. Auf der dritten und vierten Seite tauchen abwechseln die Fehlermeldung und jeweils ein beantwortetes Item auf.
Der Hinweis lautet:
Hinweis (Seite 14)
Eine oder mehrere Variablen (VA03_01) wurden bereits auf Seite 13 abgefragt. Bitte beachten Sie, dass die Antworten von Seite 13 hier angezeigt und anschließend überschrieben werden. Falls Sie eine gleichartige Frage mehrfach benötigen, erstellen Sie eine Kopie der Frage.
Welche Namen/Befehle muss ich anpassen, damit ich den Code mehrfach verwenden kann?
- Ich möchte (mindestens auf der ersten Seite der rotierten Items/Fragen) oben die Frage und Anweisungen anzeigen lassen. Natürlich taucht die Fragestellung bisher nur vor dem ersten Item der Frage auf, aber durch die Rotation immer an einer unterschiedlichen Position. Für jede Frage sind die Fragen und Anweisungen gleich.
Wie kann ich hier den Code anpassen, damit die Frage samt Anweisungen einmal oben auf der Seite, gerne auch auf allen betreffenden Seiten, auftaucht?