0 votes
in SoSci Survey (dt.) by s095605 (350 points)
// Abfolge der Bilder rotieren
if (!isset($order)) {
  $order = [];
  for ($i=1; $i<=20; $i++) {
$order[] = $i;
  }
  shuffle($order);
  registerVariable($order);
}

// Varianten der Bilder fix definieren
$variante = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2];

// Die ersten 20 Bilder anzeigen
$i = loopPage(20);
// Aber in der Reihenfolge wie in $order gespeichert
$num = $order[$i];
$basis = value(id('ZG01', $num), 'label');
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>
');
question(id('RE', $num));

Dieser Code von Ihnen soll auf Seite 1? Dann aber ohne die letzte Zeile, denn die Frage kommt ja erst auf Seite 2...

Ich habe den Code so auf Seite 1 eingefügt (ohne die Frage). Dann wird die Reihenfolge, ob traurig oder glücklich aber nicht mehr in meiner IV01 gespeichert. Ich habe versucht diese in der IV zu speichern. Funktioniert aber leider auch nicht.

Ich bekomme nur noch Fehlermeldungen und verzweifel so langsam.

Auf Seite 1 (Bilder merken) habe ich nun folgenden Code (von Ihnen, mit den beiden Zeilen zur Speicherung der Reihenfolge in der IV01, was aber überhaupt nicht mehr funktioniert):

// Abfolge der Bilder rotieren
if (!isset($order)) {
  $order = [];
  for ($i=1; $i<=20; $i++) {
$order[] = $i;
  }
  shuffle($order);
  registerVariable($order);
}

// Varianten der Bilder fix definieren
$variante = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2];
 {
$id = id('IV01', $i + 1);
put($id, $order[$i]);
}

// Die ersten 20 Bilder anzeigen
$i = loopPage(20);
// Aber in der Reihenfolge wie in $order gespeichert
$num = $order[$i];
$basis = value(id('ZG01', $num), 'label');
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>
');

und auf Seite 2 (Bilder wiedererkennen) habe ich immernoch diesen Code:

if(!isset($bilder2)){
$bilder2=array(11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30);
shuffle($bilder2);
registerVariable($bilder2);
}

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

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

Ich weiß beim besten Willen nicht, wo der Fehler liegt.
Ich habe dazu jetzt auch noch folgende Fehlermeldungen:

In der Funktion id() wurde auf Variablen des Elements ZG01 verwiesen. Dieses Element hat keine Variable(n) Nr. 36
Für die Funktion value() wurde anstatt einer Frage- oder Item-Kennung ein Parameter vom Typ NULL angegeben:

Und zu alle dem werden auf Seite 2 auch noch Bilder angezeigt, die vom Zufallsgenerator auf Seite 1 überhaupt nie gezogen wurden.

1 Answer

0 votes
by SoSci Survey (305k points)

Dann wird die Reihenfolge, ob traurig oder glücklich aber nicht mehr in meiner IV01 gespeichert

Korrekt, denn Zuordnung von happy/sad zu Bildern ist ja jetzt fix (s. Array). Sie müssen also die Abfolge nciht mehr separat speichern. Wenn Sie speichern möchten, dann können Sie es wie folgt:

$variante = [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) {
  $id = id('IV01', $i + 1);
  put($id, $var);
}

Ich weiß beim besten Willen nicht, wo der Fehler liegt.

Wenn Sie beschreiben, was funktioniert und was nicht (wenn ich also weiß, was für ein Fehler vorliegt), dann kann ich da gerne weiterhelfen. Nicht verzagen ... Sie wollen einen anspruchsvolle Ablauf, da müssen Sie jetzt durch ;)

In der Funktion id() wurde auf Variablen des Elements ZG01 verwiesen. Dieses Element hat keine Variable(n) Nr. 36

Sie haben da noch einen kleinen Fehler in Ihrem Code - und zwar hier:

$basis = value(id('ZG01', $i + $num), 'label');

Das müsste heißen

$basis = value(id('ZG01', $num), 'label');

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

...