0 votes
in SoSci Survey (dt.) by s148012 (110 points)
edited by SoSci Survey

Ich habe insgesamt 15 Frageblöcke erstellt, die zufällig rotieren sollen. Innerhalb des Blocks muss die Reihenfolge der Fragen aber beibehalten werden.

if (!isset($blocks)) {
  // Liste der Seiten definieren
  $blocks = array('KG1Start-KG1End','KG2Start-KG2End','KG3Start-KG3End','KG4Start-KG4End', 'KW1Start-KW1End', 'KW2Start-KW2End', 'KW3Start-KW3End', 'KW4Start-KW4End', 'KW5Start-KW5End', 'KW6Start-KW6End', 'DI1Start-DI1End', 'DI2Start-DI2End', 'DI3Start-DI3End', 'DI4Start-DI4End', 'DI5Start-DI5End');
  // Liste mischen
  shuffle($blocks);
  // Die Seite ergänzen, wo es nachher weiter geht
  $blocks[] = 'SD';
  // Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden
  registerVariable($blocks);
}
setPageOrder($blocks);

Nun versuche ich verzweifelt, einen Code mit put() zu schreiben, um die Reihenfolge der präsentierten Blöcke abzuspeichern. Das gelingt mir aber nicht und ich habe schon die unterschiedlichsten Szenarien durchprobiert.

Ich habe schon mal eine interne Variable erstellt. Es scheitert jedoch schon daran, dass ich nicht sicher bin, was deren Kennung überhaupt ist. Und, muss ich nun 15 Variablen anlegen?

1 Answer

0 votes
by SoSci Survey (328k points)

Nun versuche ich verzweifelt, einen Code mit put() zu schreiben, um die Reihenfolge der präsentierten Blöcke abzuspeichern.

Sie posten leider nicht, was Sie schon versucht haben. Deshalb würde ich einfach mal mit dem Beispiel-Code aus der Anleitung zu put() anfangen:

for ($i=0; $i<count($blocks); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id = id('IV01', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id, $blocks[$i]);
}

Die Kennung IV01 müssen Sie natürlich so ändern, wie Ihre interne Variablen-Frage heißt. Und diese Frage muss Ihren Blöcken entsprechend 15 Variablen (Items) haben.

by SoSci Survey (328k points)
Ich kenne weder Ihre Items noch die Variablenstruktur oder Antwortcodes... wenn Sie mir mehr verraten, kann ich auch hilfreich antworten :)
by s148012 (110 points)
reshown by SoSci Survey
Ich habe 15 Items, davon sind 5 invertiert. Zurzeit wird im Datensatz jeweils gespeichert, ob jemand bei der Frage "Richtig" oder "Falsch" angekreuzt hat. Gerne möchte ich aber zusätzlich speichern, ob die ProbandInnen diese Frage auch tatsächlich richtig oder falsch hatten, ich möchte also sozusagen das Ergebnis abspeichern.
Meine Items lauten:
TO01
TP01
TQ01
TR01
TU01
TV01
TW01
TX01
TZ01
UA01

Meine invertierten Items lauten:
T102
T201
TS01
TY01
UB01

Danke!
by SoSci Survey (328k points)
Und ... was haben Sie für Antwortcodes zu den Items?

Im einfachsten Fall nehmen Sie meinen Code von oben und verwenden ihn zweimal. Einmal für die "normalen" und einmal für die invertierten Items. Dann brauchen Sie beim put() in der zweiten Kopie nur die 1 und die 2 zu tauschen.

Das ist nicht elegant, aber effektiv.
by s148012 (110 points)
1 =  richtig
2 = falsch
by SoSci Survey (328k points)
Wir sind hier inzwischen ein gutes Stück von der ursprünglichen Frage weggekommen. Weitere Nachfragen also gerne in einer neuen Frage im Support. Aber das mit dem Code sollte funktionieren, wie oben beschrieben:

$items = [
  'TO01' => 'KG1_R',
  'TP02' => 'KG2_R',
  // u.s.w.
];
foreach ($items as $item => $internal) {
  if (value($item) ==1) {
    put($internal, 1);
  } else {
    put($internal, 2);
  }
}

Und darunter die invertierten:

$items = [
  'T102' => 'KG11_R',
  'T201' => 'KG12_R',
  // u.s.w.
];
foreach ($items as $item => $internal) {
  if (value($item) == 2) {
    put($internal, 1);
  } else {
    put($internal, 2);
  }
}

Ich habe hier die 1/2 im IF getauscht, nicht im put(). Das macht einen kleinen aber feinen Unterschied bei der Behandlung fehlender Antworten.

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

...