+1 vote
in SoSci Survey (dt.) by s091412 (135 points)
edited by SoSci Survey

Hallo,

ich habe folgendes Problem.

Im Experiment sollen Fragen von einer Liste rotiert auf den Folgeseiten angezeigt werden.

Pro Seite soll eine Rating Frage und eine dazugehörige "offene Textnennung"-Frage erscheinen. Das klappt auch; allerdings sind Frage und Kommentarzeile in der gleichen Zeile anstatt untereinander.
Ich gehe davon aus, dass durch das Array meine zwei Fragen zu kombinierten Fragen werden, die eben nebeneinander angezeigt werden. Ich weiß nicht, wie ich das ändern kann.

Das hier ist mein Code (die Liste hat jetzt nur einen Eintrag, wird später mehr):

if (!isset($fragen1)) {
$fragen1 = array(
    $item1 = array('IB01', 'IB02'),
    );
registerVariable('items1')
;
shuffle($fragen1);
registerVariable('fragen1');
}
question($fragen1[0]);

'IB01' ist meine Rating-Frage und 'IB02' ist die offene Frage.

Auf der Folgeseite habe ich dann:

question($fragen1[1]);

Gibt es irgendwelche Ideen wie ich das Problem lösen kann?

Danke schonmal für Eure Hilfe!

1 Answer

+1 vote
by SoSci Survey (328k points)
selected by s091412
 
Best answer

Ehrlich gesagt sehe ich in Ihrem PHP-Code keine wirksame Rotation, weil $fragen1 ja nur ein einziges Element enthält. Aber prinzipiell müssten Sie die beiden Kennungen einfach nur mit 2 question()-Befehlen aufrufen anstatt als Array in einem.

Also auf Seite 1 unter der Rotation:

question($fragen1[0][0], 'spacing=10');
question($fragen1[0][1]);

Und auf Seite 2 dann...

question($fragen1[1][0], 'spacing=10');
question($fragen1[1][1]);

Das 'spacing=10' ist nur exemplarisch dafür, dass Sie die Anzeige (z.B. Abstände) nach Bedarf justieren können.

by s091412 (135 points)
Perfekt, danke!! Es funktioniert genau wie es soll!

Die Liste hat übrigens später 10 Arrays. Ich dachte nur, ein Minimalbeispiel ist übersichtlicher.
by s120942 (105 points)
Das Problem ist ja auch, dass es nicht klar ist wie man mehrere Arrays macht.

if (!isset($fragen1)) {
$fragen1 = array(
    $item1 = array('IB01', 'IB02'),
    );
registerVariable('items1')
;
 $item2 = array('IC01', 'IC02'),
    );
registerVariable('items2')
;
shuffle($fragen1);
registerVariable('fragen1');
}

question($fragen1[0][0], 'spacing=20');
question($fragen1[0][1]);

Diese scheint nicht zu klappen
by SoSci Survey (328k points)
Verschachtelte Arrays brauchen keinen Variablennamen im Array. Korrekt wäre also folgende, viel einfachere Schreibweise:

if (!isset($fragen1)) {
  $fragen1 = array(
    array('IB01', 'IB02'),
    array('IC01', 'IC02')
  );
  shuffle($fragen1);
  registerVariable('fragen1');
}

question($fragen1[0][0], 'spacing=20');
question($fragen1[0][1]);

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

...