Wir bitten um Hilfe bei der Implementierung einer Item-Randomisierung in unserem Fragebogen.
Unser Ziel:
Innerhalb einer Frage sollen 10 zufällig ausgewählte Situationen aus 22 verfügbaren Situationen den Teilnehmern zur Bewertung auf einer Skala präsentiert werden.
Unsere Implementierung:
- Fragetyp: Skala (Zwischenwerte beschriftet) mit 22 Items (A302_01 bis A302_22)
- Randomisierung: Über interne Variable (A301) mit 12 Items zur Speicherung der ausgewählten Situationen
- PHP-Code: Randomisierung und Speicherung der 10 ausgewählten Item-Nummern. Bei der Skala-Frage: question('A302', $itemsZuZeigen) zur Anzeige nur der ausgewählten Items
Das Problem:
Die Randomisierung funktioniert nur im Debug-Modus, wenn wir direkt auf die Seite mit der Skala springen. Bei normalem Durchklicken durch den Fragebogen werden nur Fehlermeldungen ausgespuckt.
Was wir bereits versucht haben:
- Skala-Frage ausgeblendet und nur über PHP-Code angezeigt
- Interne Variable auf separater Seite platziert
- Verschiedene PHP-Code-Varianten getestet
- Seitenreihenfolge überprüft
Unsere aktuelle Struktur:
Seite 3: Interne Variable A301 (ausgeblendet)
Seite 4: PHP-Code für Randomisierung
Seite 5: PHP-Code + question() Aufruf für A302
Unser Code:
// Prüfen ob Item 1 bereits gesetzt ist (als Indikator für abgeschlossene Randomisierung)
if (value('A301_01') == '') {
// Array mit allen 22 Situationsnummern
$alleSituationen = range(1, 22);
// Mischen des Arrays
shuffle($alleSituationen);
// Erste 10 Elemente nehmen
$ausgewaehlte = array_slice($alleSituationen, 0, 10);
// In interne Variable A301 speichern
for ($i = 0; $i < 10; $i++) {
if ($i + 1 < 10) {
put('A301_0'.($i+1), $ausgewaehlte[$i]);
} else {
put('A301_'.($i+1), $ausgewaehlte[$i]);
}
}
// Zeitstempel und Flag setzen
put('A301_11', time());
put('A301_12', 1);
}
// Ausgewählte Items sammeln
$itemsZuZeigen = array();
for ($i = 1; $i <= 10; $i++) {
if ($i < 10) {
$itemNr = value('A301_0'.$i);
} else {
$itemNr = value('A301_'.$i);
}
if ($itemNr) {
$itemsZuZeigen[] = $itemNr;
}
}
// Nur die ausgewählten Items anzeigen
question('A302', $itemsZuZeigen);
Unsere Vermutung:
Es scheint ein Problem mit der Ausführungsreihenfolge oder der Speicherung der PHP-Variablen zwischen den Seitenaufrufen zu geben.
Könnten Sie uns bitte dabei helfen, dieses Problem zu lösen?