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...