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

Erstellen einer Seite mit Bild und Schieberegler darunter

0 votes

Hallo,

meine Probanden durchlaufen drei IATs und sollen, nach den IATs, per explizitem Rating, alle Bilder, die in den drei IAT benutzt wurden per Schieberegler bewerten.
Wie kann ich das umsetzen, dass ein Bild pro Seite und darunter ein Schieberegler (1-100) angezeigt wird? Und das dann natürlich für alle 48 benutzten Bilder. Die Bilder sollen, um Reihenfolgeeffekte zu vermeiden, in zufälliger Reihenfolge angezeigt werden (randomisierte Darstellung).

Beste Grüße,
Michael

asked Dec 6 in SoSci Survey (dt.) by s105656 (180 points)

1 Answer

0 votes

Ich würde hier zu einer Schieberegler-Frage mit 48 Item raten und diese dann per loopPage() abarbeiten lassen:

$i = loopPage(48);
question('SR01', $i + 1);

Die Anzeige des Bildes würde dann - je nachdem wie die BIlder vorliegen - z.B. über ein Array funktionieren.

$bilder = array(
  1 => 'stadt01.jpg',
  2 => 'land01.jpg',
  3 => 'fluss01.jpg',
  // u.s.w.
);

$i = loopPage(48);
html('<div style="text-align: center; margin-bottom: 2em"><img src="'.$bilder[$i].'" alt=""></div>');
question('SR01', $i + 1);
answered Dec 6 by SoSci Survey (49,455 points)
Nicht die Bilder selbst sollten Sie mischen, sonst können Sie die Daten am Ende nicht mehr zuordnen. Aber deren Schlüssel:

$bilder = array( /// u.s.w.
if (!isset($keys)) {
  $keys = array_keys($bilder);
  shuffle($keys);
}
$x = loopPage(48);
$i = $keys[$i];
html('<div style="text-align: center; margin-bottom: 2em"><img src="'.$bilder[$i].'" alt=""></div>');
if ($i > 90) {
  question('SR02', $i + 1 - 90);
} else {
  question('SR01', $i + 1);
}

So, ich hoffe, ich habe nichts vergessen.
$bilder = array(
  1 => 'Orig1.png',
  2 => 'Orig2.png',
  3 => 'Orig3.png',
///usw.
);

if (!isset($keys)) {
  $keys = array_keys($bilder);
  shuffle($keys);
registerVariable($keys);
}

$i = loopPage(48);
$x = $keys[$i];

html('<div style="text-align: center; margin-bottom: 2em"><img src="'.$bilder[$x].'" alt=""></div>');

So hab ich's jetzt gelöst. Sie haben evtl. versehentlich $i und $x vertauscht? Im html Code hab ich dann "'.$bilder[$x].'".

Jetzt sieht die Ausgabe aus, wie sie sein soll. Danke für die Hilfe!
Im Code oben müsste es

$i = $keys[$x];

heißen. Aber Sie haben recht ... das +1 fällt auch weg, wenn man die array_keys() verwendet. Sehr schön :)
Leider musste ich jetzt noch feststellen, dass ich so mit den Daten nichts anfangen kann. Irgendwie muss ich ja den Wert des Schiebereglers dem Bild zuordnen können, das bewertet wird. Ich hab's über die put() funktion

for ($n=0; $n<count($keys); $n++) {
  $id = id('EX04', $keys[$n]);
   put($id, $n + 1);
}

versucht zu lösen. Leider scheint die Ausgabe der put()-Funktion nicht mit meiner tatsächlichen Bildreihenfolge übereinzustimmen.

Ich habe bereits einen neuen Post geöffnet, dachte aber ich füge es hier kurz hinzu, da ich ja oben geschrieben hatte, dass ich Bilder bewerten lasse (in zufälliger Reihenfolge).
Hab's gelöst bekommen

$n = 0;
foreach ($keys as $x) {
  $n++;
  put(id('EX04', $n), $x);
}
...