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

Liebes Support-Team,

FRAGE 1: in einem Fragebogen möchte ich gerne unter bestimmten Voraussetzungen, die ich bereits mit dem if-Befehl zu definieren gelernt habe, Items einer Folgefrage mittels PHP ausblenden. Das Ausblenden von Folgefragen-Items ist mir von der manuellen Eingabe im Frage-Menü unter "Filterfrage" bekannt. Da ich die Bedingung nun jedoch nicht nur an eine Antwort einer bestimmten Frage, sondern an die Beantwortung mindestens zweier Fragen knüpfen möchte muss ich leider auf PHP zurückgreifen. Ich benötige quasi den PHP-Befehl für das Ausblenden einzelner Fragen-Items und mit goToPage(), question(), etc komme ich leider nicht weiter.

FRAGE 2: Lässt sich ggf. mit PHP vorgeben, dass eine auf der selben Seite befindliche Frage nur dann zwingend beantwortet werden muss, wenn eine andere mit einer bestimmten Antwort beantwortet oder alternativ grundsätzlich beantwortet wurde.

ERLÄUTERUNG & KONKRETISIERUNG: Der Befragte soll aus verschiedenen Dropdown-Fragen auswählen, welche Medien er gelegentlich zusammen benutzt. Hier ergeben einzelne Medien also keinen Sinn. Die Anzahl der kombinierten Mediengeräte soll zwischen zwei und drei variieren können. Deshalb habe ich drei Dropdown-Menüs in einer Zeile via html angeordnet, aus denen jeweils ein Mediengerät ausgewählt werden kann. Zusätzlich soll der Befragte die Möglichkeit erhalten drei verschiedene Mediengeräte-Kombinationen nach Nutzungshäufigkeit geordnet anzugeben - die häufigste Kombination, die zweithäufigste Kombination und die dritthäufigste von oben nach unten. Da es jedoch immer um Gerätekombinationen geht, müssen in jeder Zeile mindestens zwei Mediengeräte ausgewählt werden. Da den Befragten aber freigestellt sein soll, wie viele verschiedene Medien-Kombinationen sie eintragen (mindestens eine), möchte ich gerne pro "Zeile" vorgeben, dass nur dann wenn ein erstes Mediengerät per Dropdown ausgewählt wurde, ebenfalls das zweite Mediengerät per zweitem Dropdown angegeben werden muss. Der Befragte soll gezwungen werden entweder kein Feld oder mindestens zwei auszufüllen. Das dritte Feld soll immer optional bleiben. Weiter macht es inhaltlich keinen Sinn die häufigste und dritthäufigste Medienkombination anzugeben aber die zweithäufigste auszulassen, sodass ich auch gerne verhindern möchte, dass die zweithäufigste Kombination nicht angegeben wird, obwohl die dritthäufigste angegeben wird.

Auf der nächsten Seite soll dann die Nutzungshäufigkeit für die vergleichsweise variablen Gerätekombinationen abgefragt werden. Dies habe ich mit if() und replace() bereits umsetzen können. Wenn ein Proband jedoch nur seine häufigste Kombination ausgewählt hat, soll auf der Folgeseite das jeweilige Item für die zweithäufigste und dritthäufigste Kombination ausgeblendet werden. Dies habe ich ebenfalls bereits mit einer "normalen" Filterfrage im jeweils ersten Antwortfeld jeder Zeile einstellen können. Jedoch besteht das Problem das ein Proband das erste Dropdown-Menu einer Zeile unausgefüllt lässt und seine Gerätekombination nur an zweiter und dritter Stelle einträgt. Dies wäre inhaltlich richtig, würde jedoch dazu führen, dass das dazu passende Item in der Folgefrage fälschlich nicht angezeigt wird. Die jetzige Lösung ist also sehr fehleranfällig und wenig elegant.

Anbei befinden sich Screenshots der Eingabeseite "Gerätekombinationen" und der Seite, auf denen die Items je nach vorherigen Antworten ausgeblendet werden sollen "Kombinationshäufigkeit".

Vielen Dank für die Hilfe im Voraus.

Viele Grüße

Kai Grothues

1 Answer

0 votes
by SoSci Survey (302k points)

FRAGE 1: Ich benötige quasi den PHP-Befehl für das Ausblenden einzelner Fragen-Items und mit goToPage(), question(), etc komme ich leider nicht weiter.

Kein Problem ... Sie können im question() Befehl einfach angeben, welche Items angezeigt werden sollen.

if (value('AB01') == 1) {
  question('BB02', '1-10');
} else {
  question('BB02', '1-5,7,10');
}

FRAGE 2: Lässt sich ggf. mit PHP vorgeben, dass eine auf der selben Seite befindliche Frage nur dann zwingend beantwortet werden muss, wenn eine andere mit einer bestimmten Antwort beantwortet oder alternativ grundsätzlich beantwortet wurde.

So etwas können Sie mit einer individuellen Antwortprüfung (zu platzieren auf der folgenden Seite) realisieren.

by s102235 (170 points)
edited by s102235
Hallo,

vielen Dank für die super Hilfe! Ich habe mich nun etwas eingelesen und hab leider immer noch ein kleines Problem, da ich mit dem vorgeschlagenen Code-Schnipsel nicht so gut zurecht komme. Das Problem ist, dass ich question() leider nicht von Werten abhängig machen kann, da der Teilnehmer frei entscheiden können soll, in welchem der drei Dropdown-Menüs er angibt, welche Gerätekombination er nutzt. Da eine Kombination immer aus mindestens zwei und maximal drei Geräten/Antworten besteht hatte ich es bisher leider vergebens wie folgt probiert:

$missing1 = getItems('SK07', 'missing');
$missing2 = getItems('SK08', 'missing');
$missing3 = getItems('SK09', 'missing');
$missingline2 = array_merge($missing1, $missing2, $missing3);

$missing1 = getItems('SK14', 'missing');
$missing2 = getItems('SK15', 'missing');
$missing3 = getItems('SK16', 'missing');
$missingline3 = array_merge($missing1, $missing2, $missing3);

if (count('$missingline3') >= 2)
{question('MU01', '1-2');
if (count('$missingline2') >= 2)
{question('MU01', '1');}}
else {question('MU01', '1-3');}

Wenn ich es richtig verstanden habe, muss ich quasi als Bedingung angeben, dass immer nur dann, wenn mindestens zwei der drei möglichen Auswahlfragen (wie auch immer) beantwortet wurden, das entsprechende Item bei der nächsten Frage angezeigt werden soll.

Ich als blutiger Anfänger im Bereich PHP habe in dem Beispiel oben vielleicht etwas blauäugig versucht, über getItems() zu zählen, wie viele Antworten fehlen, diese dann über array_merge() zusammengefasst und versucht mit dieser Grundlage festzulegen, dass wenn die Anzahl der fehlenden Angaben größer oder gleich 2 ist, die kommende Frage nur
mit Item 1 von 3 oder mit Items 1 und 2 von 3 angezeigt wird.

Oder lässt sich via PHP auch programmieren, dass wenn der Wert von mindestens 2 der Fragen SK07, SK08, und SK09 unter 0 liegt, eine bestimmte Item-Zusammenstellung in der Folgefrage angezeigt wird und wenn der Wert von mindestens 2 der Fragen SK14, SK15 und SK16 unter null 0 liegt, eine andere Item-Zusammenstellung in der Folgefrage angegeben wird.

Inhaltlich lässt es sich so verstehen, dass wenn ein Teilnehmer bei seiner dritthäufigsten Kombination nur ein Endgerät angibt, es keine korrekte Antwort auf die Frage nach der dritthäufigsten Geräte-Kombination ist, und damit auch alle weiteren Fragen sinnlos werden. Daher möchte ich die Teilnehmer zwingen mindestens 2 und maximal 3 der Auswahlfragen zum genutzten Gerät zu beantworten.

Kann man mir hier ggf. weiterhelfen? Vielen Dank im Voraus.
by SoSci Survey (302k points)
PHP ist meist nicht das Problem - das ist nur die formale Sprache, um Regeln niederzuschreiben. Wenn Sie mir kurz erklären, wie die kennungen (SK07-09, SK14-16 und MU01) mit dem Screenshot oben zusammenhängen, dann würde ich die Konstellation etwas besser verstehen...
by SoSci Survey (302k points)
> Jedoch besteht das Problem das ein Proband das erste Dropdown-Menu einer Zeile unausgefüllt lässt und seine Gerätekombination nur an zweiter und dritter Stelle einträgt.

Sie hatten ja in der Frage oben bereits 2 Fragen vermischt. Das macht die Kommunikation leide ein wenig unübersichtlich. Ich denke, wir kommen am schnellsten zum Ziel, wenn Sie oben (unter der Antwort) eine "related question" anlegen und wir uns separat um die (noch) offenen Probleme kümmern.

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

...