0 votes
in SoSci Survey (dt.) by s214403 (115 points)

Liebes SoSci-Team,

ich habe eine Frage bezüglich der Dokumentation von der Randomisierung von (Text-) Items.

Wir möchten in unserem Fragebogen die Reihenfolge der Antwortitems randomisieren lassen und die randomisierte Reihenfolge auch im Datensatz anzeigen lassen.

Für die Randomisierung habe ich folgenden PHP-Code eingebaut: (AS37 ist die Frage) (der Code scheint zu funktionieren, die Items werden randomisiert angezeigt)

$items = getItems('AS37', 'all');
shuffle($items);
question('AS37', $items);

Um die Reihenfolge im Datensatz anzeigen zu lassen, habe ich für jede Frage eine interne Variable (hier: RD03) erstellt und bisher diesen PHP-Code aus der Anleitung verwendet:

$items = array('AS37_01','AS37_02','AS37_03','AS37_04','AS37_05','AS37_06','AS37_07','AS37_08');
for ($i=0; $i<count($items); $i++) {
  // Rang speichern wie oben
  $id = id('RD03', $items[$i] + 1);
  put($id, $i + 1);
  // Seite in der Abfolge speichern
  $shuffle[$i] = $items[$indices[$i]];
}

Neben diversen Fehlermeldungen („A non-numeric value encountered“ „Die PHP-Variable $indices wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert)“, …) wird mir leider im Datensatz, unabhängig von der tatsächlich randomisierten Reihenfolge, jeweils nur 1-2-3-4-5-6-7-8 angezeigt.

Haben Sie eine Idee, wo das Problem liegen könnte und was ich ändern kann, um es zu beheben?
Ich hoffe das war verständlich genug erklärt, falls nicht, geben Sie gerne nochmal Bescheid.

Schon mal vielen Dank für die Hilfe!

Viele Grüße

1 Answer

+1 vote
by SoSci Survey (328k points)

Die letzte Zeile ist m.E. nicht erforderlich:

// Seite in der Abfolge speichern
$shuffle[$i] = $items[$indices[$i]];

Das Problem liegt m.E. darin, dass Sie die Variable $items im ersten Teil Ihres Codes definieren, mischen und verwenden - und bevor Sie sie speichern, überschreiben Sie die Variable nochmal.

$items = array('AS37_01','AS37_02', ...

Folgende gekürzte Variante sollte funktionieren:

$items = getItems('AS37', 'all');
shuffle($items);
question('AS37', $items);
for ($i=0; $i<count($items); $i++) {
  // Rang speichern
  $id = id('RD03', $items[$i] + 1);
  put($id, $i + 1);
}

Wichtig ist, dass beide Teil im selben "PHP-Code" Element stehen.

by s214403 (115 points)
Super, vielen Dank! Mit dem umgeschriebenen Code funktioniert es einwandfrei.

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

...