Hallo, ich versuche seit mehreren Tagen einen PHP-Code zu erstellen, um die Items aus den insgesamt drei Fragen, in einer bestimmten Reihenfolge zu mischen und auf verschiedenen Seiten anzuzeigen. Das Problem ist, dass weder die Fragen gemischt werden und immer folgende Fehlermeldung aufkommt:
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Befehl oder String (Text) nicht abgeschlossen
Hinter einem Befehl wie z.B. question() steht kein Strichpunkt oder
ein String (Text in Anführungszeichen) ist nicht abgeschlossen oder
im String selbst kommt ein Anführungszeichen vor, z.B. html('Mach's besser!'); – in diesem Fall stellen Sie dem Anführungszeichen einen Backslash () voran.
Möglicherweise stimmen die öffnenenden und schließenden geschweiften Klammern für Anweisungsblöcke auch nicht überein.
PHP-Code
035 foreach ($questions as $qstID) {
036 $qstItems = getItems($qstID, 'all');
037 foreach ($qstItems as $itemID) {
038 $items[
039 ['LST', 1],
040 ['AES', 1],
041 ['EOE', 1],
042 ['EOE', 2],
Bisher habe ich mithilfe der Internetseite https://www.soscisurvey.de/help/doku.php/de:create:rotation-itemmix
folgende PHP-funktion erstellt:
Kompletter Befehl mit ‘‘
if (isset($itemBlocks)) {
$questions = ['LST', 'AES', 'EOE'];
// Liste mit allen Items erstellen
$items = [
['LST', 1],
['AES', 1],
['EOE', 1],
['EOE', 2],
['LST', 2],
['EOE', 3],
['LST', 3],
['AES', 2],
['LST', 4],
['LST', 5],
['AES', 3],
['LST', 6],
['LST', 7],
['LST', 8],
['EOE', 4],
['EOE', 5],
['EOE', 6],
['LST', 9],
['EOE', 7],
['AES', 4],
['EOE', 8],
['EOE', 9],
['LST', 10],
['EOE', 10],
['LST', 11],
['AES', 5]
];
foreach ($questions as $qstID) {
$qstItems = getItems($qstID, ‘all‘);
foreach ($qstItems as $itemID) {
$items[
['LST', 1],
['AES', 1],
['EOE', 1],
['EOE', 2],
['LST', 2],
['EOE', 3],
['LST', 3],
['AES', 2],
['LST', 4],
['LST', 5],
['AES', 3],
['LST', 6],
['LST', 7],
['LST', 8],
['EOE', 4],
['EOE', 5],
['EOE', 6],
['LST', 9],
['EOE', 7],
['AES', 4],
['EOE', 8],
['EOE', 9],
['LST', 10],
['EOE', 10],
['LST', 11],
['AES', 5]
] = [$qstID, $itemID];
}
}
// Liste mischen
shuffle($items);
registerVariable($items);
}
// Fragetext anzeigen
question('HS03', 'spacing=0', 'show-items=no');
// Items anzeigen
foreach ($items as $item) {
question($item[0], [$item[1]], [$item[1]], [$item[2]], [$item[2]], [$item[3]], [$item[3]], [$item[2]], [$item[4]], [$item[5]], [$item[3]], [$item[6]], [$item[7]], [$item[8]], [$item[4]], [$item[5]], [$item[6]], [$item[9]], [$item[7]], [$item[4]], [$item[8]], [$item[9]], [$item[10]], [$item[10]], [$item[11]], [$item[05]], 'spacing=0', 'show-title=no', 'show-explanation=no');
}
if (isset($itemBlocks)) {
$questions = ['LST', 'AES', 'EOE'];
// Liste mit allen Items erstellen
$items = [
['LST', 1],
['AES', 1],
['EOE', 1],
['EOE', 2],
['LST', 2],
['EOE', 3],
['LST', 3],
['AES', 2],
['LST', 4],
['LST', 5],
['AES', 3],
['LST', 6],
['LST', 7],
['LST', 8],
['EOE', 4],
['EOE', 5],
['EOE', 6],
['LST', 9],
['EOE', 7],
['AES', 4],
['EOE', 8],
['EOE', 9],
['LST', 10],
['EOE', 10],
['LST', 11],
['AES', 5]
];
foreach ($questions as $qstID) {
$qstItems = getItems($qstID, 'all');
foreach ($qstItem as $itemID) {
$items[
['LST', 1],
['AES', 1],
['EOE', 1],
['EOE', 2],
['LST', 2],
['EOE', 3],
['LST', 3],
['AES', 2],
['LST', 4],
['LST', 5],
['AES', 3],
['LST', 6],
['LST', 7],
['LST', 8],
['EOE', 4],
['EOE', 5],
['EOE', 6],
['LST', 9],
['EOE', 7],
['AES', 4],
['EOE', 8],
['EOE', 9],
['LST', 10],
['EOE', 10],
['LST', 11],
['AES', 5]
] = [$qstID, $itemID];
}
}
// Liste mischen
shuffle($items);
// Liste aufteilen
$itemBlocks = array_chunk($items, 12);
registerVariable($itemBlocks);
}
// Auf mehreren Seiten präsentieren
$i = loopPage(count($itemBlocks));
// Fragetext anzeigen
question('HS03', 'spacing=0', 'show-items=no');
// Items anzeigen
$items = $itemBlocks[$i];
foreach ($items as $item) {
question ($item[0], [$item[1]], [$item[1]], [$item[2]], [$item[2]], [$item[3]], [$item[3]], [$item[2]], [$item[4]], [$item[5]], [$item[3]], [$item[6]], [$item[7]], [$item[8]], [$item[4]], [$item[5]], [$item[6]], [$item[9]], [$item[7]], [$item[4]], [$item[8]], [$item[9]], [$item[10]], [$item[10]], [$item[11]], [$item[05]], 'spacing=0', 'show-title=no', 'show-explanation=no');
}
Ich hoffe Sie können mir weiter helfen, da ich nicht viel vom Programmieren verstehe.