Ok, das klingt logisch,so sieht mein Text jetzt aus:
if (value('M102_10') == 2) {
question ('RE10');
}
$itemliste = getItems('M102','min', 2); // Relevante Items ermitteln
shuffle($itemliste); // Liste mischen
// Fragen zu den Items definieren
$fragen = array(
1 => 'RE01',
2 => 'RE02',
3 => 'RE03',
4 => 'RE04',
5 => 'RE05',
6 => 'RE06',
7 => 'RE07',
8 => 'RE08',
9 => 'RE09',
10 => 'RE10',
11 => 'RE11',
12 => 'RE12'
);
$anzahl = count($itemliste); // So viele Elemente können erfragt werden
if ($anzahl == 0) {
goToPage('next'); // Nichts genutzt? Dann gleich weiter!
}
elseif ($anzahl > 1) {
$anzahl = 1; // Maximal zwei Polprofile abfragen
}
for ($i=0; $i<$anzahl; $i++) {
$item_kenn = $itemliste[$i]; // Einer der genutzten Dienste (1 bis 6)
$frage_kenn = $fragen[$item_kenn]; // Die entspr. Frage
question($frage_kenn); // Frage stellen
}
Nur leider kommt jetzt wenn man Item 10 anklickt, die passende Frage zweimal untereinander. Das liegt daran, dass in meinem array ja die 10 nochmal zugeordnet wird. Lösche ich die Anweisung zu 10 aus dem array kommen allerdings folgende Fehlermeldungen:
Im Befehl question() wurde keine Frage-Kennung angegeben.
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Undefined offset: 10
Zeile: 33
PHP-Code
030
031 for ($i=0; $i<$anzahl; $i++) {
032 $item_kenn = $itemliste[$i];
033 $frage_kenn = $fragen[$item_kenn];
034 question($frage_kenn);
035 }
036 return 'ok';