0 votes
in SoSci Survey (dt.) by s317486 (110 points)

Ich möchte in meiner Umfrage jede Person einer Gruppe zuordnen (Gruppe 1-3). Jede dieser Gruppen bekommt 3 unterschiedliche Bilder mit gezeigt und muss dazu Fragen beantworten. Die Ziehung der Gruppen habe ich mit der Urnenfunktion bereits eingestellt. Wie kann ich nun den Gruppen die jeweiligen Bilder & Fragen ausspielen? Mittels php Code hat das leider nicht funktioniert und auch mit den Filteroptionen/ Bedingungen kann ich es nicht einstellen. Vielen Dank für Unterstützung.

by SoSci Survey (345k points)
> Die Ziehung der Gruppen habe ich mit der Urnenfunktion bereits eingestellt.

In den meisten Fällen ist ein Zufallsgenerator besser geeignet als eine Urne - wenn es nur um die Anzeige eines Bildes geht, benötigt man dann überhaupt keinen PHP-Code: https://www.soscisurvey.de/help/doku.php/de:create:randomization-einfaktoriell

Wenn Sie mit PHP-Code arbeiten und er tut nicht das, was er soll, dann (a) posten Sie bitte Ihren PHP-Code und (b) die Debug-Information der Fragebogen-Seite mit dem PHP-Code.
by s317486 (110 points)
Da ich ein Experiment mit 3 Gruppen machen möchte, bei denen jede Gruppe  3 unterschiedliche Bilder mit Fragen hat und jede Gruppe gleich viele Teilnehmer haben soll, funktioniert aus meiner Sicht ein Zufallsgenerator nicht. Sehe ich das falsch? Für jede Gruppe habe ich 3 Seiten angelegt. Hier zum Verständnis das Lateinische Quadrat mit dem ich arbeite:
Produkt     Gruppe 1    Gruppe 2    Gruppe 3
Produkt A     Plattform A    Plattform B    Plattform C
Produkt B     Plattform B    Plattform C    Plattform A
Produkt C     Plattform C    Plattform A    Plattform B

An den Anfang der Seite mit dem Bild und den zugehörigen Fragen habe ich jeweils den PHP Code geschrieben. Hier ist der PHP Code beispielhaft für Gruppe 1:
$gruppe = value('D002_01') + 0;

if ($gruppe != 1) {
    return 'hide';
}

Hier die entsprechende Debug Information:
[Information]    Interview Nummer 112 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt r3eewn9e8 wird verwendet
[Information]    Die Verweildauer auf Seite 6 war 4 Sekunden
[Verarbeitung]    Lese Antworten von Seite 6
[Information]    Antwort auf C003 = 1
[Information]    Bedingung in Filter C003/1 ist nicht erfüllt.
[Information]    ▼ Filter C003/2 wird aktiv (Bedingung erfüllt).
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Information]    Entsprechend Filter C003/F2 wird Seite 7 (jump1) nicht angezeigt.
[Information]    Entsprechend Filter C003/F2 wird Seite 8 (jump2) nicht angezeigt.
[Information]    Entsprechend Filter C003/F2 wird Seite 9 (jump4) nicht angezeigt.
[Verarbeitung]    Erstelle Seite 10 in Fragebogen base
[Information]    value("D002_01") = 3
[Inhalt]    Erstelle Frage D001
[Inhalt]    Erstelle Frage D201
[Inhalt]    Erstelle Frage D202
[Inhalt]    Erstelle Frage D203
[Inhalt]    Erstelle Frage D204
[Inhalt]    Erstelle Frage D205
[Inhalt]    Erstelle Frage D206
[Inhalt]    Erstelle Frage D207
by SoSci Survey (345k points)
> Sehe ich das falsch?

Ja. Der Zufallsgenerator ist dafür hervorragend geeignet - er kümmert sich um die Gleichverteilung (wie die Urne) und zieht einen Code (wie die Urne). Nur kann man weniger falsch machen beim Speichern der Variable und wenn man während der Erhebung nachjustieren muss, geht das auch einfacher.

>  Hier zum Verständnis das Lateinische Quadrat mit dem ich arbeite:

Danke.

if ($gruppe != 1) {
    return 'hide';
}


Wo kommt dieser PHP-Code denn her? Ich bin ziemlich sicher, dass die Anleitung an keiner Stelle ein "return" empfiehlt. Auch wenn so etwas aktuell funktionieren sollte, würde ich dringend davon abraten - es kam mehr als einmal vor, dass wir die internen Mechanismen des Fragebogens geändert haben.

Auch würde ich nicht empfehlen, Seiten komplett zu überspringen. Vielmehr würde ich einen IF-Filter empfehlen, der abhängig von der Gruppe den richtigen Code anzeigt oder eben nicht.

> [Information]    Entsprechend Filter C003/F2 wird Seite 7 (jump1) nicht angezeigt.

Sie scheinen PHP- und Fragefilter zu mischen. Davon würde ich auch abraten, was wird schnell unübersichtlich.

Was sind denn Ihren "Plattform A" u.s.w. Inhalte. Das ist jeweils eine Frage, korrekt?
by s317486 (110 points)
Alles klar, danke. Dann stelle ich den Zufallsgenerator statt der Urne ein. Ich habe in dem Fragebogen Fragefilter eingefügt. Jedoch stehen diese nicht in Zusammenhang mit dem Lateinischen Quadrat sondern sind vorangehend.

Je Plattform (die als Bild gezeigt wird) habe ich 7 Fragen. Jeder Teilnehmer bekommt also je nach Gruppe 3 unterschiedliche Plattformen mit jeweils 7 Fragen pro Plattform angezeigt.

Wie kann ich nun den Gruppen unterschiedliche Inhalte anzeigen? Nicht per PHP Code sondern per Filter?

1 Answer

0 votes
by SoSci Survey (345k points)

Wie kann ich nun den Gruppen unterschiedliche Inhalte anzeigen? Nicht per PHP Code sondern per Filter?

Was spricht gegen PHP-Code? Die Filter, die Sie in Auswahlfragen konfigurieren können, sind lediglich eine vereinfachte Variante davon für triviale Anwendungsfälle.

Der PHP-Code ist aber auch nicht besonders komplex:

if (value('RG01') == 1) {
  question('AB01');
} elseif (value('RG01') == 2) {
  question('AB03');
} elseif (value('RG01') == 3) {
  question('AB03');
}
// u.s.w.

Es ginge mit einem Array auch noch eleganter...

by s317486 (110 points)
Dankeschön, mit dem PHP Code kann ich die Fragen anzeigen lassen. Könnte ich aber auch ganze Seiten anzeigen oder überspringen lassen? Ich habe 9 Seiten (3 Seiten pro Gruppe) mit jeweils 7 Fragen. Es wäre also einfacher die Seiten ein oder auszublenden.

Die Fragen sind tatsächlich für alle Gruppen gleich, es variieren nur die Bilder die den Gruppen angezeigt werden. - Gäbe es hierfür noch eine einfachere Lösung?
by SoSci Survey (345k points)
> Könnte ich aber auch ganze Seiten anzeigen oder überspringen lassen?

Ja, mittels setPageOrder() oder goToPage('next'), je nach konkretem Fall. Aber meistens ist es deutlich (!) eleganter, wenn man jeweils nur den einen Inhalt auf einer Seite austauscht.

> es variieren nur die Bilder

Sie können mit dem PHP-Filter natürlich auch Bilder einbinden. Die einfachste Lösung...

if (value('RG01') == 1) {
  html('<div><img ...></div>');
} elseif (value('RG01') == 2) {
  html('<div><img ...></div>');
} elseif (value('RG01') == 3) {
  html('<div><img ...></div>');
}

Wie der HTML-Code zum Einbinden von Bildern aussehen kann, erklärt die Anleitung zu Mediendateien.

Es gibt viele verschiedene Möglichkeiten, Bilder einzubinden. Wenn der HTML-Code länger wird, kann man z.B. im Filter auch einfach nur den Bildnamen per Platzhalter und replace() setzen und den HTML-Code für die Einbindung (einmalig) unter den PHP-Filter schreiben.

Wenn man mehr als eine Handvoll Gruppen hat, kann man auch gut mit Arrays arbeiten statt mit IF-Filtern.

Was da jeweils die beste Variante ist, kommt auf den konkreten Anwendungsfall an.

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

...