0 votes
in SoSci Survey (dt.) by s122032 (135 points)

Hallo,

ich habe 2 Fragebögen, welche ich jeweils gerne in ihrer standard Form und in randomisierter Form abfragen würde.
Also im Prinzip gibt es 4 Experimentalgruppen, jeder Teilnehmer kann einen der 4 folgenden Gesamt-Fragebögen bekommen:
1) Fragebogen 1 im standard Format + Fragebogen 2 im standard Format
2) Fragebogen 1 im standard Format + Fragebogen 2 im randomisierten Format
3) Fragebogen 1 im randomisierten Format + Fragebogen 2 im standard Format
4) Fragebogen 1 im randomisierten Format + Fragebogen 2 im randomisierten Format

Nun hab ich mittels Zufallsgenerator die Zuordnung zu einer der 4 Gruppen erstellt.
Die Fragebögen 1 und 2 habe ich als 2 getrennte Rubriken erstellt.

Meine Frage ist nun ob es möglich ist eine komplette Rubrik zu randomisieren?
Oder alternativ einen ganzen Fragebogen zu randomisieren und zusammen mit einer randomisierten Version zu einem Gesamtfragebogen zusammenzufügen?

Wäre super, falls mir jemand helfen könnte!

lG
Paul

2 Answers

+1 vote
by SoSci Survey (327k points)
selected by s122032
 
Best answer

Danke, langdam wird es klarer :)

Ich empfehle, dass Sie abhängig von der gezogenen Zufallszahl erst einmal die richtige(n) Liste(n) mischen.

if (!isset($fragen1)) {
  $fragen1 = array('AB01', 'AB02', 'AB03');
  $fragen2 = array('BB01', 'BB02', 'BB03');
  // Zufallszahl auslesen
  $code = value('RG01');
  if (($code == 2) or ($code == 4)) {
    shuffle($fragen1);
  }
  if (($code == 3) or ($code == 4)) {
    shuffle($fragen2);
  }
  registerVariable($fragen1);
  registerVariable($fragen2);
}

Dann können Sie die Fragen auf der jeweiligen Seite einfach "herunterspulen".

foreach ($fragen1 as $frage) {
  question($frage);
}
by s122032 (135 points)
Ah ja, so ist es logischer.
Vielen Dank für deine Unterstützung!
+1 vote
by SoSci Survey (327k points)

Wenn ich Sie korrekt verstehe, haben Sie zwei Rubriken mit jeweils mehreren Fragen - und Sie möchten diese in zufällige Reihenfolge (auf einzelnen Seiten vermute ich) anzeigen.

SIcher haben Sie in der Anleitung zur "Rotation" schon den PHP-Code gefunden, um Fragen über mehrere Seiten hinweg zu randomisieren. Wenn SIe jeweils nur eine Frage pro Seite haben möchten, dann ist das mittels loopPage()ja recht einfach möglich. Ein paar Zeilen Code finden Sie auch hier: https://support.soscisurvey.de/?qa=4552/mehrere-sections-auswahlen&show=4591#a4591

Mit Ihrer Randomisierung bringen Sie das recht einfach zusammen: Sie legen 4 Gruppen per Zufallsgenerator an (1 bis 4) und je nach gezogener Zahl wird im ersten und zweiten Teil des Fragebogens jeweils die Rotation mittels shuffle() aktiv oder Sie verwenden die Liste wie sie ist und zeigen die Fragen per loopPage() in der vorgegeben Reihenfolge an.

by s122032 (135 points)
Danke für die hilfreichen Tips!
Der Fragebogen hat jetzt schon gestalt angenommen, ich hab nur noch ein Problem bei der Rotation.
Und zwar werden bei den randomisierten Fragebogenrubriken Fragen doppelt angezeigt.
Ich kann mir auch schon denken warum:
"shuffle()" wird wahrscheinlich wegen dem "loopPage()" ständig neu aufgerufen.

Mein Code:

    if (value('RG01') == 1) {
      $questions = getQuestions('CN');
      $i = loopPage(count($questions));
      question($questions[$i]);
    } elseif (value('RG01') == 2) {
      $questions = getQuestions('CN');
      $i = loopPage(count($questions));
      question($questions[$i]);
    } elseif (value('RG01') == 3) {
      $questions = getQuestions('CN');
      shuffle($questions);
      $i = loopPage(count($questions));
      question($questions[$i]);
    } elseif (value('RG01') == 4) {
      $questions = getQuestions('CN');
      shuffle($questions);
      $i = loopPage(count($questions));
      question($questions[$i]);
    }

Achja, ich weiß, dass die Fälle 1&2 und 3&4 hier gleich sind.
Kann ich das "loopPage()" irgendwie in ne extra Schleife packen, oder liegt mein Fehler wo anders?

lG
Paul
by SoSci Survey (327k points)
Das loopPage() würde ich komplett aus der IF-Konstruktion herausnehmen.

Leider habe ich noch nicht ganz verstanden, was Ihr Ziel ist. Und dass Sie in allen 4 Bedingungen der IF-Konstruktion dieselben Fragen aus derselben Rubrik abrufen, scheint mir nur bedingt sinnvoll.

Also ... was soll diese Konstruktion denn machen? Wenn wir das geklärt haben, sollte ich auch besser weiterhelfen können.
by s122032 (135 points)
Danke für die schnelle Antwort.
Also das loopPage() hab ich jetzt rausgenommen, und das ständige shufflen mit isset() und registerVariable() unterbunden.
Es werden hier 4-mal die gleichen Fragen gestellt, da ich unterschiedliche Bedingungen erstelle.
Es folgt nach dieser Seite eine zweite Seite sodass es dann so aussieht:
if (value('RG01') == 1):
Seite 1 Fragen ohne Shuffle
Seite 2 Fragen ohne Shuffle

if (value('RG01') == 2):
Seite 1 Fragen ohne Shuffle
Seite 2 Fragen mit Shuffle

if (value('RG01') == 3):
Seite 1 Fragen mit Shuffle
Seite 2 Fragen ohne Shuffle

if (value('RG01') == 4):
Seite 1 Fragen mit Shuffle
Seite 2 Fragen mit Shuffle

Ich hoffe das war einigermaßen verständlich.

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

...