0 votes
in SoSci Survey (dt.) by s214545 (140 points)
edited by s214545

Hallo alle zusammen!

Ich möchte gerne eine Multi-Level-Struktur gestalten. Im Hauptfragebogen sollen mehrere Fragen gestellt werden, die alle die Antwortmöglichkeiten "Ja", "Nein", "weiß nicht" haben. Wenn eine Frage mit Ja beantwortet wurde, soll im nächsten Schritt Fragen dazu im ein Teilfragebogen beantwortet werden. Dieser enthält mehrere Fragen. Die Fragen im Teilfragebogen werden also mehrmals beantwortet.

Bisher habe ich den PHP-Code zur Einführung eines Teilfragebogens herausgefunden, allerdings soll sich der Teilfragebogen ja mehrmals öffnen und nur dann, wenn eine Variable mindestens einmal mit "Ja" beantwortet wurde. Wie genau mache ich, dass dies im Fragebogen durchgeführt wird?

Über Hilfestellungen würde ich mich sehr freuen!

Viele Grüße

1 Answer

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

allerdings soll sich der Teilfragebogen ja mehrmals öffnen und nur dann, wenn eine Variable mindestens einmal mit "Ja" beantwortet wurde

Sie brauchen hier zweierlei.

Einmal eine Schleife, welche den Aufruf des untergeordneten Fragebogens mehrfach wiederholt. Sehen Sie sich dazu bitte einmal loopPage() an inkl. dem Beispiel in der Multi-Level-Anleitung.

Und dann brauchen Sie PHP-Filter, um zu prüfen, ob der untergeordnete Fragebogen in jedem Durchlauf aufgerufen werden soll oder eben nicht. Elegant wäre es, wenn Sie sich dafür ein Array (s. Anleitung) anlegen, in welchem für jede Ihrer Fragen vermerkt ist, ob der Fragebogen aufgerufen werden soll oder nicht - das ässt sich in der Schleife ganz einfach abarbeiten.

Probieren Sie mal ein wenig und bei den Details können wir dann gerne weiterhelfen.

by s214545 (140 points)
Hallo!

ich habe das jetzt erstmal so versucht, aber da scheint noch irgendwo ein Fehler drin zu sein:

loopToPage('PHP', 4);
$i = loopIndex();
switch ($i+1) {
  case 1: replace('%Test%', 'TEst1'); break;
  case 2: replace('%Test%', 'Test2'); break;
  case 3: replace('%Test%', 'Test3'); break;
  case 4: replace('%Test%', 'Test4'); break;
  default: break;          
};

Bei "Test" schreibe ich dann die Namen der Variablen rein, die beantwortet werden soll.
Ich verstehe allerdings noch nicht so genau wie dann die Antworten gespeichert werden, die im Teilfragebogen beantwortet werden? Der Fragebogen wird ja öfters beantwortet, aber wie genau werden diese Fragen dann gespeichert bzw abgerufen?

Viele Grüße
by SoSci Survey (327k points)
Mit replace() würde ich hier nicht arbeiten, eher mit question():
https://www.soscisurvey.de/help/doku.php/de:create:randomization-question

Und IF-ELSEIF ist i.d.R. weniger fehleranfällig als SWITCH.
by s214545 (140 points)
Guten Morgen!

Ich habe es mit question() probiert, da kommt aber eine Fehlermeldung. Vielleicht lasse ich es so, wenn es in der Ausgabe passt.

Eine letzte Frage haben Sie mir aber letztesmal nicht beantwortet. Können Sie mir sagen, wie die Daten da gespeichert werden, wenn die Befragten die Variablen im Teilfragebogen öfters ausfüllen?

Viele Grüße
by SoSci Survey (327k points)
> Ich habe es mit question() probiert, da kommt aber eine Fehlermeldung

Sie können gerne Code und Fehlermeldung posten, dann kann ich Ihnen Hilfestellung bei der Behebung leisten.

> Können Sie mir sagen, wie die Daten da gespeichert werden, wenn die Befragten die Variablen im Teilfragebogen öfters ausfüllen?

Wenn Sie mit einer Multi-Level-Struktur arbeiten, dann wird jede Wiederholung des untergeordneten Fragebogens einen Fall im Datensatz erzeugen ("long format") - das sollten Sie im Rahmen der Fragebogen-Entwicklung und -Testung aber ohnehin mal ausprobieren.

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

...