0 votes
in SoSci Survey (dt.) by s300945 (135 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?

1 Answer

0 votes
by SoSci Survey (349k points)
selected ago by s300945
 
Best answer

Puh, Sie haben da ein paar ziemlich alte Code-Versatzstücke verwendet - woher kommt der Code denn?

Meine Empfehlung wäre, dass Sie die Randomisierung einm Zufallsgenerator überlassen. Dafür ist dieser nämlich da. Erstellen sie einen mit den Zetteln 1 bis 22, und sagen Sie ihm, er möge pro Inteview 10 Zettel ziehen.

Und dann wird der Code auch deutlich einfacher. Hier wäre der Zufallsgenerator RG01.

$items = array_values(valueList('RG01'));
question('A302', $items);

Bei normalem Durchklicken durch den Fragebogen werden nur Fehlermeldungen ausgespuckt.

Bitte posten Sie Fehlermeldungen generell im Wortlaut. Dann kann ich dazu gerne konstruktives Feedback geben

ago by s300945 (135 points)
Vielen Dank, damit hat es ohne Probleme geklappt!

Der ursprüngliche Code stammt von Claude.ai, aber die haben offensichtlich noch veraltete Informationen.
ago by SoSci Survey (349k points)
Wenn Sie mit generativer KI arbeiten, denken Sie bitte daran, dass es sich dabei um Sprachmodelle (LLMs) handelt. Sie bekommen damit plausible Antworten, aber die Sprachmodelle "verstehen" das Problem nicht (de facto modellieren sie es nicht). Das führt dazu, dass sie auf Basis allgemeiner Strukturen im Kontext "PHP-Programmierung" schon eine Lösung bekommen. Aber ohne das spezifische Kontextwissen zum SoSci Survey Framwork bleibt es eben bei einer generischen, unnötig komplizierten Lösung.

Selbst wenn LLMs die Anleitung zu SoSci Survey "gelesen haben", macht diese nur einen verschwindend kleinen Anteil des Übungsmaterials aus. Beachten Sie bitte, dass die Antworten von generativer AI selbst wenn sie die Anleitung verarbeitet haben, nur mit einer Chance von ca. 65% korrekt sind.

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

...