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

Mein Code auf Seite 2 lautet nun folgendermaßen:

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);
$basis = value(id('ZG01', $i + 11), 'label');
$bild = $basis.'_n.jpg';
html('div style="margin: 3em; text-align: center">img src="'.$bild.'" alt="" /; style="max-width: 50%">');
$frage = id('RE01', $bild);
question('RE01', $bild);

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? Und damit IV01 nicht einfach überschrieben wird?

Nun habe ich das Item mit der Frage (RE01, mit 20 Fragen) einfach per PHP unten angehängt und sie erscheint auch unter dem Bild. Aber ist das so schon korrekt? Habe ich also mit diesem Code zu jedem Bild die richtige Antwort? Ich habe noch zwei Fehlermeldungen auf Seit 2:

Die Funktion id() erwartet als Parameter Nr. 2 einen Wert vom Typ integer. Es wurde ein Wert (104_n.jpg) vom Typ string angegeben.

Das Argument 104_n.jpg, das in einer Funktion eines PHP-Blocks verwendet wurde, ist nicht bekannt und wird ignoriert.

Ich vestehe das Problem nicht, weil der Code ja quasi der gleiche wie auf Seite 1 ist. Und dort gibt es keine Fehlermeldung.

Ein weiteres Problem, was mit aufgefallen ist: Es werden über den Zufallsgenerator 40 Bilder gezogen. Diese sehe ich in den Daten unter ZG01...... Nun sollten ja eigentlich unter IV01 20 Bilder erscheinen, die im Zufallsgenerator gezogen wurden. Dort erscheinen aber Bilder, die vom Zufallsgenerator gar nicht gezogen wurden...

1 Answer

0 votes
by SoSci Survey (312k points)

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.

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

...