0 votes
in SoSci Survey (dt.) by s111048 (170 points)

Lieber SoSci-Survey Online Support,

zu Beginn meines Fragebogens füllen die Teilnehmenden maximal 10 Episoden aus (Minimum = 1). Danach wird ihnen mittels loopToPage zu jeder angegeben Episode derselbe Fragenblock gestellt. Dafür soll auf der ersten Seite von loopToPage die ausgefüllte Episode angezeigt werden und anschließend über die nächsten 3 Seiten die Frageblöcke. Unten ist meine Lösung.

Mein Problem ist nun Folgendes: Jede Episode ist eine eigene Frage (LM02 – LM11) und besteht aus vier Items (4 offene Texteingaben für Name, Beginn, Ende und Notizen). Die Kennungen sind LM02_01, LM02_02, LM02_03 und LM02_04 etc. Wenn ich wie in meiner Lösung vorgehe wird mir in rot ausgegeben, dass die Variable LM02 nicht im Projekt existiert (ist ja klar, da die Variablen ja LM02_01 etc. heißen). Nun weiß ich nicht, wie ich das lösen kann.

Ich dachte, wenn ich für jede Episode eine Rubrik erstelle, würde sich etwas ändern. Allerdings ergibt sich dasselbe Problem, da aufgrund der offenen Texteingabe die Variablen weiterhin LM02_01 etc. heißen. Ich bekomme also auch die Meldung, dass die Variablen LM02 etc. nicht existieren.

Ich würde mich wirklich über Hilfe und eine Lösung dieses Problem freuen!!

  $sections = [
  1 => 'LM02',  2 => 'LM03', 3 => 'LM04', 4 => 'LM05', 5 => 'LM06',
  6 => 'LM07',  7 => 'LM08', 8 => 'LM09', 9 => 'LM10', 10 => 'LM11'
];
$episoden = array();

foreach ($sections as $ep => $sec) {
  if (
    (trim(value(id($sec, 1))) == '') and
    (trim(value(id($sec, 2))) == '') and
    (trim(value(id($sec, 3))) == '') and
    (trim(value(id($sec, 4))) == '')
  ) {
    // Hier wurde nichts eingetragen, weiter zur nächsten
    continue;
  }
  // Sonst die Nummer der Episode notieren
  $episoden[] = $ep;
}
// Die Liste benötigen wir evtl. noch auf weiteren Seiten
registerVariable($episoden);

$i = loopToPage(‘RMd’, count($episoden));

$ep = $episoden[$i];

     $fragen = [
  1 => 'LM02',  2 => 'LM03', 3 => 'LM04', 4 => 'LM05', 5 => 'LM06',
  6 => 'LM07',  7 => 'LM08', 8 => 'LM09', 9 => 'LM10', 10 => 'LM11'
];

$frage = $fragen[$episoden[$i]];

$titel = value(id($frage));
$titel = replace('%eTitel%', id($frage), 'response');

1 Answer

0 votes
by SoSci Survey (327k points)

dass die Variable LM02 nicht im Projekt existiert (ist ja klar, da die Variablen ja LM02_01 etc. heißen). Nun weiß ich nicht, wie ich das lösen kann.

Die Funktion id() baut aus den Bestandteilen einer Kennung die Kennung zusammen. Nehmen wir einmal die folgende Zeile:

$titel = value(id($frage));

Wenn in $frage der Wert "AB01" steht, dannn liefert id() auch einfach nur diesen Wert, wenn Sie hingegen schreiben

$titel = value(id($frage, 1));

... dann macht die Funktion id() aus "AB01" und der 1 die Kennung "AB01_01" .

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

...