0 votes
in SoSci Survey (dt.) by s060755 (205 points)
edited by SoSci Survey

Hey,

ich habe folgenden PHP-Code der auch soweit eigentlich das tut, was ich will. Allerdings würde ich gerne nur einen Block von den 3 Arrays anzeigen lassen und dann zum Ende des Fragebogens springen.

Außerdem wäre eine Randomisierung innerhalb der Arrays auch hilfreich. Gibt es da eine geeignete Möglichkeit?

$blocks = array(
  array('BF01', 'F01', 'FL01'),
  array('BF02', 'F02', 'FL02'),
  array('BF03', 'F03', 'FL03'),

);

 registerVariable('blocks');
// Jetzt noch die Blöcke rotieren
shuffle($blocks);
$gesamtliste = array();
foreach ($blocks as $block) {
  $gesamtliste = array_merge($gesamtliste, $block);
}
// Und hier erst die letzte Seite anfügen
$gesamtliste[] = 'REMOVE';
setPageOrder($gesamtliste);

Vielen Dank und liebe Grüße, Steven

1 Answer

+1 vote
by SoSci Survey (327k points)

Wenn Sie nur einen der drei Blöcke haben möchten, müssen Sie nach dem shuffle() einfach nur den erstbesten verwenden:

$blocks = array(
  array('BF01', 'F01', 'FL01'),
  array('BF02', 'F02', 'FL02'),
  array('BF03', 'F03', 'FL03'),

);
// Jetzt noch die Blöcke rotieren
shuffle($blocks);
// Den ersten verwenden
$block = $blocks[0];

Diesen können sie in sich nochmal mischen und dann als Seitenabfolge verwenden.

shuffle($block);
$block[] = 'REMOVE';
setPageOrder($block);
by s060755 (205 points)
funktioniert perfekt, tausend dank

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

...