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

Hallo alle,

ich habe folgendes Probelem:

In meiner Umfrage würde ich gerne vier Themenblöcke randomisiert hintereinander darbieten. Das habe ich soweit mit einem geshuffelten array hinbekommen

$rotationInfInt = array(
'InfPM' => array('PM','PM1', 'PM2','PM3', 'PM4', 'PM5', 'PM6','PM7'), 
'InfPF' => array('PF','PF1', 'PF2','PF3', 'PF4', 'PF5', 'PF6','PF7'), 
'InfNM' => array('NM','NM1', 'NM2','NM3', 'NM4', 'NM5', 'NM6','NM7'),
'InfNF' => array('NF','NF1', 'NF2','NF3', 'NF4', 'NF5', 'NF6','NF7')
);


  registerVariable($rotationInfInt);
shuffle($rotationInfInt); 
setPageOrder($rotationInfInt, 'PO1');

Allerdings möchte ich innerhalb dieser vier Blöcke jeweils eine Zufallsauswahl treffen und nur eine von 6 möglichen Seiten (z.B. eine aus PM1-6) anzeigen lassen, bevor es in den nächtsen Themenblock geht. Hierfür habe ich auf der ersten Seite der Blöcke jeweils eine if Schleife verwendet.

$zahl = value('RD09');  // Zufallszahl ziehen
if ($zahl == 1) {
  setPageOrder('PM1, PM7');
} elseif ($zahl == 2) {
  setPageOrder('PM2, PM7');
} elseif ($zahl == 3) {
  setPageOrder('PM3, PM7');
} elseif ($zahl == 4) {
  setPageOrder('PM4, PM7');
} elseif ($zahl == 5) {
  setPageOrder('PM5, PM7');
} elseif ($zahl == 6) {
  setPageOrder('PM6, PM7');
}

Leider funktioniert es nicht so wie ich mir das vorstelle und nach der ersten Randomisierung der Blöcke werden die Seiten regulär angezeigt und nicht mehr in der Reihenfolge des geshuffelten arrays. Vermutlich habe ich irgendwo einen Denkfehler, oder das Durchlaufen des arrays für die Blöcke wird die Zufallsziehung innerhlab der Blöcke durchbrochen?

Danke schonmal im vorraus für Hilfe

Liebe Grüße

1 Answer

0 votes
by SoSci Survey (327k points)

Sie können setPageOrder() nicht "übereinander" staffeln.

Währen Sie einfach direkt zu Begriff eine von 4 x 6 = 24 möglichen Abfolgen. Vermutlich wäre dies mit einem Zufalsgenerator einfacher als mittels PHP-Code: Seiten rotieren

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

...