0 votes
in SoSci Survey (dt.) by s133806 (110 points)

Folgendes Szenario:

Mein Fragebogen ist in drei Experimentalgruppen aufgebaut, welchen jeweils ein rotierender Block zugewiesen werden soll.

Diese 3 Blöcke beinhalten jeweils unterschiedliche Reihenfolgen von Paaren aus Bild (png) und einer Frage. Die Blöcke sind auf den Seiten LV,LOe und LP festgehalten. (Hier Bsp. LOe)

if (!isset($blocks)) {
  $blocks = array(  
    array('LV01', 'Lebenslauf_1_OeV.png'),
    array('LV02', 'Lebenslauf_2_OeV.png'),
    array('LV03', 'Lebenslauf_3_OeV.png'),
    array('LV04', 'Lebenslauf_4_OeV.png'),
    array('LV05', 'Lebenslauf_5_OeV.png'),
    array('LV06', 'Lebenslauf_6_OeV.png'),
    array('LV07', 'Lebenslauf_7_OeV.png'),
    array('LV08', 'Lebenslauf_8_OeV.png'),
    array('LV09', 'Lebenslauf_9_OeV.png'),
    array('LV10', 'Lebenslauf_10_OeV.png'),
    array('LV11', 'Lebenslauf_11_OeV.png'),
    array('LV12', 'Lebenslauf_12_OeV.png'),
  );
 
  shuffle($blocks);

  registerVariable($blocks);
}
 
$i = loopPage(count($blocks));

html('<p><img src="'.$blocks[$i][1].'" alt="Wahlplakat"></p>');

question($blocks[$i][0]);

Nun versuche ich, diese Blöcke den drei Bedingungen zuzuordnen. 
if (value('EX01') == 1) {
goToPage('LV'); 
} elseif (value('EX01') == 2) {
goToPage('LOe'); 
} elseif (value('EX01') == 3) {
goToPage('LP'); 
} else {
 
}

Das Problem dabei ist, dass ich zwar zu einer Rotation gelange, jedoch folgende Fehlermeldung angezeigt wird und die Lebensläufe+Frage jeweils zweimal angezeigt werden.

Fehlermeldung:
Eine oder mehrere Variablen (LV08) wurden bereits auf Seite 6 abgefragt. Bitte beachten Sie, dass die Antworten von Seite 6 hier angezeigt und anschließend überschrieben werden. Falls Sie eine gleichartige Frage mehrfach benötigen, erstellen Sie eine Kopie der Frage.

Vielen Dank!

1 Answer

0 votes
by SoSci Survey (328k points)

Das Problem ist vermutlich, dass Sie bei allen drei Teilen den gleichen Variablennamen $blocks verwenden.

Falls dem so ist, wird die Rotation nur ein einziges Mal beim ersten Block durchgeführt. Und beim zweiten Block sorgt das isset($blocks) dafür, dass die "alte" Variable erneut verwendet wird.

Lösung: Verwenden Sie einfach beim zweiten Mal $blocks2 und beim dritten mal $blocks3. Oder einen anderen Variablennamen Ihrer Wahl.

Das isset() ist erforderlich, damit die Rotation nicht nach jeder Seite von loopPage() erneut gemischt wird. Daran bitte nichts ändern.

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

...