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

Hallo,

ich würde gerne wissen, ob es eine Lösung gibt, wenn für eine Frage mit Dropdown-Auswahl Platzhalter eingesetzt werden, es aber eine geringere Anzahl von übergebenen Werten gibt.

Um mein Problem näher zu erläutern, habe ich die Situation etwas genauer geschildert.

Situation:
Teilnehmende gehören verschiedenen Gruppen an. Nachdem sie bei einer Frage ihre Gruppe ausgewählt haben, sollen die Teilnehmenden bei der nächsten Frage mit Dropdwon-Auswahl ihren Namen aussuchen. Die dort aufgelisteten Namen sind je nach Auswahl der Gruppe unterschiedlich, da in den Gruppen jeweils verschiedene Personen sind. Meine Idee war für die Antwortoptionen der Frage (nach dem Namen) Platzhalter zu benutzen
(%name1%, %name2%, ...) und mit den Namen der Personen der jeweiligen Gruppen zu ersetzten.

PHP-Code:
//falls Gruppe A ausgewählt wurde
if (value('FrageNachGruppe') == 1) {
replace(%name1%, 'Name1 A');

Problem:
Das funktioniert auch alles außer, wenn es eine unterschiedliche Anzahl an Personen in den jeweiligen Gruppen gibt. Denn dann gibt es eine ungleiche Anzahl an Gruppenteilnehmenden und Platzhaltern. Wenn es weniger Gruppenteilnehmende als Platzhalter gibt, wird den übrig gebliebenen Platzhaltern kein Name übergeben.

Lösungsansatz:
Ich könnte das Problem durch einen Filter lösen, sodass je nach Auswahl der Gruppe die Items (in diesem Fall die Platzhalter) ausgeblendet werden, für die es auch eine Person bzw. Namen gibt.

Da in den folgenden Fragen die Gruppenlisten angezeigt werden und das sehr aufwändig ist für jede folgende Frage einen Filter zu erstellen, wollte ich fragen, ob es da eine bessere Lösung gibt.

Vielen Dank und viele Grüße!

1 Answer

0 votes
by SoSci Survey (305k points)

Ich denke, Sie benötigen im Prinzip nur die Code-Beispiele aus dieser Anleitung:
Items in eine andere Frage übernehmen

Die Itemliste kann man einmal erstellen und dann per registerVariable() für alle folgenden PHP-Codes verfügbar machen, sodass der Code nur einmal in den Fragebogen muss.

by s157192 (140 points)
Das Problem ist, dass die Items (in diesem Fall die Namen) in keiner vorigen Frage ermittelt werden, sondern schon vor dem Ausfüllen des Fragebogens feststehen. Wenn ich das richtig verstanden habe, heißt das, die Funktion getItems() kann in dem Fall nicht genutzt werden, da es keine vorher ausgewählten Items (Namen) gibt aus denen man eine Liste erstellen könnte und in eine andere Frage übernehmen könnte.

Gibt es keine Funktion, durch die man eigenständig eine Itemliste als Antwortoption für eine Frage erstellen und dann einsetzten könnte?
by SoSci Survey (305k points)
> sondern schon vor dem Ausfüllen des Fragebogens feststehen

Auch kein Problem - ob Sie die Liste mit Items mittels getItems() oder durch Definition eines Arrays festlegen, macht dann in der Anwendung keinen Unterschied.

Eventuell wäre es sogar sinnvoll, wenn Sie nicht mit Platzhaltern arbeiten, sondern gleich alle Optionen anlegen und immer nur die passenden zeigen. Von wie viele Gruppen sprechen wir denn? Und wie viele Antwortoptionen gäbe es insgesamt - also wenn man alle für alle Gruppen untereinander schreibt?

> Gibt es keine Funktion, durch die man eigenständig eine Itemliste als Antwortoption für eine Frage erstellen und dann einsetzten könnte?

Das könnte z.B. so aussehen:

$optionen = [
  1 => [1,2,3,4,5],
  2 => [6,7,8,9,10],
  3 => [11,12,13,14,15]
];
$gruppe = value('AB01');
$items = $optionen[$gruppe];
registerVariable($items);
by s157192 (140 points)
> Von wie viele Gruppen sprechen wir denn? Und wie viele Antwortoptionen gäbe es insgesamt - also wenn man alle für alle Gruppen untereinander schreibt?

Es gibt 3 Gruppen und insgesamt 46 Antwortoptionen (voraussichtlich mehr) (in einer Gruppe gibt es 13, in der anderen 24, in der letzten 9)
by SoSci Survey (305k points)
Ich würde dazu raten, dass Sie ttsächlich 46 Antwortoptionen (oder eben mehr) in den Fragen anlegen. Das hätte den Vorteil, dass eine Variable im Datensatz immer dieselbe Bedeutung hätte. Wenn Sie da dank Platzhaltern immer etwas unterschiedliches messen, wird das in der Auswertung kein Spaß.
by s157192 (140 points)
Aber je nach dem welche Antwortoption (z.B. A, B, C) in der vorherigen Frage (nach der Gruppenzugehörigkeit) gewählt wurde, gibt es ja in den folgenden Fragen dann jeweils andere Antwortoptionen (alle Namen der ausgewählten Gruppe).

Z.B.
- Gruppe A hat die Teilnehmenden '1a', '2a', '3a', '4a', '5a'
- Gruppe B hat die Teilnehmenden '1b', '2b', '3b', '4b', '5b', '6b', '7b', '8b', '9b', '10b'
(die Zahlen sollen jeweils für die Namen der Teilnehmenden stehen)

Die Teilnehmenden werden erst gefragt, in welcher Gruppe sie sind. Wenn Gruppe A ausgewählt wird, muss die Person dann bei der nächsten Frage ihren eigenen Namen aus einer Dropdown-Auswahl mit allen Namen der Gruppe A auswählen.
In späteren Fragen werden die Teilnehmenden dann nämlich zu den Personen aus ihrer eigenen Gruppe befragt, weshalb diese "Namensliste" der jeweiligen Gruppen eingefügt werden muss. Deswegen hatte ich an Platzhalter gedacht.


> Wie genau funktioniert der Beispiel-Code?
by SoSci Survey (305k points)
> Wie genau funktioniert der Beispiel-Code?

Sie brauchen in den folgenden Fragen ja lediglich eine Itemliste, welche definiert, welche Items oder Optionen angezeigt werden sollen.

Der o.g. Beispielcode würde - je nachdem, welche Option in AB01 gewählt wurde (=Gruppe) - eine Itemliste definieren. Und diese können Sie dann in allen folgenden Fragen verwenden.
by s157192 (140 points)
Das heißt ich würde in der Frage nach den Namen, die Namen aller Teilnehmenden auflisten, da nur die Namen angezeigt werden würden, welche vorher für die jeweiligen Gruppen zugeordnet wurden (im Beispiel-Code mit $optionen definiert), richtig?

Und für jede weitere Frage, in der die Namenliste vorkommt, genauso und dem Code.
by SoSci Survey (305k points)
Möchten Sie vielleicht der Übersichtlichkeit halber eine neue Frage hier im Support anlegen, wo Sie den Ausschnitt zu Ihrer "Gruppenauswahlfrage" aus der "Variablen-Übersicht" posten? Ich bin mir noch nicht ganz klar darüber, wie Ihre Frage aussieht.

Und posten Sie gerne auch, welche Items der Folgefrage wem angezeigt werden sollen. Dann kann ich deutlich konkreter antworten als bisher :)

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

...