0 votes
ago in SoSci Survey (dt.) by s300945 (120 points)

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?

Please log in or register to answer this question.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...