0 votes
in SoSci Survey (dt.) by s095605 (350 points)

Ja das stimmt, die Reihenfolge interessiert mich primär nicht. Ich dachte das sei vielleicht wichtig, weil ja immer die ersten 5 glücklich und die zweiten 5 traurig etc. sind...Und ich sonst nicht wüsste, welche wie angezeigt wurden. Zumindest wüsste ich nicht, woher ich das sonst wüsste...

Hier nochmal mein Code auf Seite 1 "Bilder merken":

// Abfolge der Bilder rotieren
// isset prüft ob eine Variable existiert und sie nicht NULL ist 
if (!isset($order)) {
  $order = [];
  for ($i=1; $i<=30; $i++) {
$order[] = $i;
  }
  shuffle($order);
//mit registerVariable die Variable für die folgenden PHP Elemente merken 
  registerVariable($order);
}
for ($i=0; $i<count($order); $i++) {
$id = id('IV01', $i + 1);
put($id, value(id('ZG01', $order[$i])));
}

// Varianten der Bilder fix definieren
// 1=happy 2=sad
$variante = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2];
foreach ($variante as $i => $var);

// Die ersten 30 Bilder anzeigen
$i = loopPage(30);
// Aber in der Reihenfolge wie in $order gespeichert
$num = $order[$i];
$basis = value(id('ZG01', $num), 'label');
//wenn 1, dann zeige Bild mit Endung .h; wenn 2, dann zeige Bild mit Endung .s
if ($variante[$num - 1] == 1) {
  $bild = $basis.'_h.jpg';
} else {
  $bild = $basis.'_s.jpg';
}
html('
  <div style="margin: 3em; text-align: center">
  <img src="'.$bild.'" alt="" /; style="max-width: 50%">
  </div>
');

Hier der Code von Seite 2 "Bilder wiedererkennen":

if(!isset($bilder2)){
$bilder2=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40);
shuffle($bilder2);
registerVariable($bilder2);
}

for ($i=0; $i<count($bilder2); $i++) {
$id = id('IV02', $i + 1);
put($id, value(id('ZG01', $bilder2[$i])));
}

$i = loopPage(40);
$num = $bilder2[$i];
$basis = value(id('ZG01', $num), 'label');
$bild = $basis.'_n.jpg';
html('<div style="margin: 3em; text-align: center">
<img src="'.$bild.'" alt="" /; style="max-width: 50%">
</div>');
question('RE21', $num);
debug($num);
debug($basis);

Ich hoffe, die Ansichten passen jetzt. Bei mir sieht es gut aus, denn eigentlich mache ich das immer so, wie von Ihnen angegeben...

related to an answer for: Daten interpretieren

1 Answer

0 votes
by SoSci Survey (306k points)

Der erste Code ist ein wenig unnötig kompliziert. Und zwar könnten Sie die 30 Bilder einfach in der Reihenfolge anzeigen, wie sie im Zufallsgenerator gezogen werden. Das einzige, was Sie mittels shuffle() rotieren müssten, wäre Ihr Array $variante.

Wenn Sie es so machen, dann haben Sie die Abfolge und (!) welches Bild welcher Nummer entspricht alles in ZG01.

// Varianten zufällig präsentieren
if (!isset($variante)) {
  $variante = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2];
  shuffle($variante);
  foreach ($variante as $i => $x) {
    $id = id('IV01', $i + 1);
    put($id, $x);
  }
}
// Bilder 1-30 einfach in dieser Reihenfolge anzeigen
// (der Zufallsgenerator hat sie ja bereits gemischt)
$i = loopPage(30);
$basis = value(id('ZG01', $i + 1), 'label');
//wenn 1, dann zeige Bild mit Endung .h; wenn 2, dann zeige Bild mit Endung .s
if ($variante[$i] == 1) {
  $bild = $basis.'_h.jpg';
} else {
  $bild = $basis.'_s.jpg';
}
html('
  <div style="margin: 3em; text-align: center">
  <img src="'.$bild.'" alt="" /; style="max-width: 50%">
  </div>
');

Ich denke, so sparen Sie sich bei der Auswertung viel Kopfzerbrechen.

asked Nov 10, 2020 in SoSci Survey (dt.) by s095605 (350 points) Antworten auszählen

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

...