Ich habe eine zweite interne Variable erstellt (IV02), wieder mit 20 Fragen. Die brauche ich, um zu sehen, welche Bilder auf der zweiten Seite gezogen wurden oder?
Nicht unbedingt. Aber sie schadet auch nicht. Sie haben ja gleich zu Beginn 30 Bilder gezogen - deshalb wissen Sie, was auf Seite 2 an Bildern kommt. Nur die Reihenfolge nicht. Die hätten Sie jetzt noch in IV02.
Und beim zweiten Code ist es schon fast richtig:
$i = loopPage(20);
$num = $bilder2[$i]; // Das ist der Knackpunkt bzw. die Rotation der Bilder 11-30
$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%">');
$frage = id('RE01', $num - 10); // Das -10 benötigen Sie, wenn die Fragen RE01_01 etc. heißen.
question($frage);
Ein weiteres Problem, was mit aufgefallen ist: Es werden über den Zufallsgenerator 40 Bilder gezogen.
Eigentlich sollten Sie nur 30 ziehen, denn 10 wiederholen sich ja.
Wenn das soweit funktioniert, müssen wir uns jetzt nochmal um die glücklichen und traurigen Zuordnungen auf Seite 1 kümmern. Am einfachsten wird es sein, wenn Sie nicht ein Array mit 20 Werten (10-mal 1 und 10-mal 2) anlegen, sondern ein fixes Array mit folgender Abfolge: [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2]
Dieses mischen Sie nicht (!), sondern stattdessen Mischen Sie die Abfolge mit welcher die 20 Bilder angezeigt werden. Und zwar genauso, wie oben in dieser Frage.