0 votes
in SoSci Survey (dt.) by s179011 (160 points)

Ich möchte innerhalb einer Fragebogenseite Fragen rotiert anzeigen und dabei die Präsentationsreihenfolge speichern. Eine dieser Fragen ist eine kombinierte Frage. Wie kann ich es erreichen, dass 3 Fragen kombiniert werden und diese kombinierte Gesamt-Frage mit rotiert wird auf der Seite?

2 Answers

0 votes
by SoSci Survey (330k points)
selected by s179011
 
Best answer

Gut, wenn es mehr Fragen sind, machen wir es eleganter :)

Sie möchten die Reihenfolge speichern? Dann verwenden Sie einen Zufallsgenerator. Als Inhalt können Sie die Kennung der Frage bzw. bei kombinierten Fragen der ersten Frage verwenden - da geht es v.a. darum, dass Sie wissen, was gemeint ist.

Der Code würde dann etwa wie folgt aussehen:

$fragen = valueList('RG01', NULL, 'label');
foreach ($fragen as $frage) {
  if ($frage == 'AB01') {
    question('AB01');
  }
  if ($frage == 'AB02') {
    question('AB02');
  }
  if ($frage == 'AB03') {
    question('AB03', 'combine=AB04');
  }
  if ($frage == 'AB05') {
    question('AB05', 'combine=AB06', 'combine=AB07');
  }
}
by s179011 (160 points)
Danke, das klingt nach der Variante, die ich brauche! Leider ist irgendwas falsch am Code: "In der Funktion valueList() wurde ein ungültiges Argument () vom Typ boolean verwendet.". Was wäre das entsprechende gültige Argument?
by SoSci Survey (330k points)
Stimmt, es muss NULL statt FALSE heißen - ich habe es oben geändert.
by s179011 (160 points)
Dann kommen folgende Fehlermedlungen:
Fehler im Fragebogen (Seite 6)
"Items in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt. Dies führt fast zwangsläufig zu Datenverlust! Falls Sie eine Frage mehrfach benötigen, legen Sie bitte eine Kopie der Frage an. Betroffen sind folgende Items: AD01_01, AD01_02, AD01_03, AD01_04.
Fehler im Fragebogen (Seite 6)

Items in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt. Dies führt fast zwangsläufig zu Datenverlust! Falls Sie eine Frage mehrfach benötigen, legen Sie bitte eine Kopie der Frage an. Betroffen sind folgende Items: AD02_01, AD02_02, AD02_03, AD02_04."

AD01 und AD02 sind die Elemente der kombinierten Frage...
Als Inhalt des Zufallsgenerator AD01 und AD03 genommen (AD02 nicht, weil das die sekundäre Frage der kombinierten Frage ist).
by SoSci Survey (330k points)
> Items in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt.

Haben Sie außer dem PHP-Code noch andere Inhalte auf der Seite?

Was zeigt debug($fragen) an?
by s179011 (160 points)
Jetzt geht es. (Ich habe den Zufallsgenerator nochmal neu reingezogen, ich weiß nicht, was das Problem war.)
0 votes
by SoSci Survey (330k points)

Bei 3 Fragen gibt es zum Glück nur 6 mögliche Abfolgen. Die kann man noch mit ein wenig PHP-Code biilden:

$rotation = random(1,6);

if ($rotation == 1) {
  question('AB01');
  question('AB02');
  question('AB03', 'combine=AB04');
}
if ($rotation == 2) {
  question('AB01');
  question('AB03', 'combine=AB04');
  question('AB02');
}
// u.s.w.
if ($rotation == 6) {
  question('AB03', 'combine=AB04');
  question('AB02');
  question('AB01');
}

Es ginge auch eleganter - mit einem Array und einer Schleife - das würde dann aber vermutlich ein gutes Stück komplizierter.

by s179011 (160 points)
edited by s179011
Vielen Dank! Es sind leider 4 Fragen, (2 davon sind 2er bzw. 3er kombinierte Fragen, also 7 Kennungen im Spiel), sodass es 24 Möglichkeiten gibt...
Mit random() wird die Präsentationsreihenfolge aber nicht gespeichert, oder?

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

...