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

Hallo

In meinem Fragebogen möchte ich zwei Blöcke rotieren und nach jedem Block fixe Seiten einbauen.

Dazu habe ich den folgenden PHP-Code verwendet:

$blockfolge = array_values(valueList('RA03'));
$blocks = [
  1 => valueList('RA04', null, 'label'),
  2 => valueList('RA05', null, 'label')
];
$gesamtliste = array_merge(
  $blocks[$blockfolge[0]],['Neutral1m-gap2'],
  $blocks[$blockfolge[1]], ['Heiter1m-gap1'],
  $blocks[$blockfolge[2]]
);
setPageOrder($gesamtliste, 'posttest');

array_merge funktioniert jedoch nur, wenn vor einem Block eine Seite angezeigt werden soll. Ich möchte aber danach eine Seite anzeigen.
Wie kann ich den Coder verändern, dass Heiter 1m-gap1 nach Block 1 (RA04) und Neutral1m-gap2 nach Block 2 erscheinen?

1 Answer

0 votes
by SoSci Survey (325k points)

array_merge funktioniert jedoch nur, wenn vor einem Block eine Seite angezeigt werden soll. Ich möchte aber danach eine Seite anzeigen.

Die Funktion array_merge() fügt einfach nur mehrere Arrays zu einem Array zusammen. Ein "davor" oder "danach" kennt diese Funktion nicht. Die folgende (identische) Schreibweise macht das deutlicher:

$gesamtliste = array_merge(
  $blocks[$blockfolge[0]],
  ['Neutral1m-gap2'],
  $blocks[$blockfolge[1]],
  ['Heiter1m-gap1'],
  $blocks[$blockfolge[2]]
);

Nun haben Sie in dem Beispiel-Code m.E. keine drei Blöcke, sondern nur zwei, also...

$gesamtliste = array_merge(
  $blocks[$blockfolge[0]],
  ['Neutral1m-gap2'],
  $blocks[$blockfolge[1]],
  ['Heiter1m-gap1']
);

Und dann schreiben Sie, dass Sie die fixen Seiten eigentlich lieber in der anderen Reihenfolge hätten, also

$gesamtliste = array_merge(
  $blocks[$blockfolge[0]],
  ['Heiter1m-gap1'],
  $blocks[$blockfolge[1]],
  ['Neutral1m-gap2']
);
by s207995 (110 points)
Vielen Dank für die Rückmeldung!
Ich habe eine fixe Seite, die nach Block 1 erscheinen sollte (Heiter1m-gap1) und eine fixe Seite, die nach Block 2 erscheinen sollte (Neutral1m-gap1). Ist es möglich, dass die Seiten nach dem ersten und zweiten Block erscheinen?
Mit dem neuen Code erscheinen immer zum gleichen Zeitpunkt die Seiten Heiter1m-pap1 und Neutral1m-gap2, diese sollten jedoch abhängig davon ob vorher Block 1 oder 2 gegezeigt wurden erscheinen.
by SoSci Survey (325k points)
Wenn Sie die fixen Seiten fest an besteimmte Blöcke hängen möchten, dann müssten Sie das ein Stückchen weiter oben erledigen ... dann sind es aber keine fixen Seiten im Sinne der Anleitung mehr.

$blocks = [
  1 => array_merge(valueList('RA04', null, 'label'), ['Heiter1m-gap1']),
  2 => array_merge(valueList('RA05', null, 'label'), ['Neutral1m-gap2'])
];

Oder mit gleichem Effekt, aber etwas übersichtlicher:

$blocks = [
  1 => valueList('RA04', null, 'label'),
  2 => valueList('RA05', null, 'label')
];
$blocks[1][] = 'Heiter1m-gap1';
$blocks[2][] = 'Neutral1m-gap2'];

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

...