0 votes
in SoSci Survey (dt.) by s024483 (220 points)

Angenommen, ich wöllte für einen Fragebogen drei Multiple Choice Fragen miteinander kombinieren. Dabei soll über die Altersspanne hinweg angeklickt werden, welche von drei Sportarten man praktiziert hat.

Das Ergebnis sieht so aus:

Dazu habe ich zwei Fragen:

1) Ich verstehe nicht, warum die Itemtexte neben den Antwortfeldern stehen, obwohl ich bei "Position of input fields" behind ausgewählt habe. Wie lässt sich das verändern?

2) Ist es möglich, je nach Alter der Probanden, welches man vorher abgefragt hätte, die Auswahloptionen unterschiedlich lang zu machen? So dass ein 80-Jähriger über 80 Zeilen hinweg angeben kann, welche Sportart er in jedem Lebensjahr ausgeführt hat, ein Zwanzigjähriger aber nur 20 Zeilen angezeigt bekommt?

3 Answers

+1 vote
by SoSci Survey (301k points)

1) Ich verstehe nicht, warum die Itemtexte neben den Antwortfeldern stehen, obwohl ich bei "Position of input fields" behind ausgewählt habe. Wie lässt sich das verändern?

"behind" heißt, dass der Text rechts hinter "behind" dem Auswahlfeld erscheint.

2) Ist es möglich, je nach Alter der Probanden, welches man vorher abgefragt hätte, die Auswahloptionen unterschiedlich lang zu machen?

Ja, Sie können im question()-Befehl angeben, welche Items (=Zeilen) angezeigt werden. Erzeugen Sie dafür ein Array, welche Zeilen Sie anzeigen möchten. Das können Sie natürlich abhängig vom vorher angegeben vom Alter machen. Aber bitte nötigen Sie keinen 80-jährigen, 70 Zeilen auszfüllen. Das bringt Ihnen in der Auswertung nichts - da wären 5-Jahres-Schritte wohl sinnvoller.

0 votes
by s024483 (220 points)

@ Sosci Survey:

Danke für die schnelle Antwort. 2) probiere ich gleich aus. Zu 1) muss ich nochmal nachhaken:

"behind" heißt, dass der Text rechts hinter "behind" dem Auswahlfeld erscheint.

Das ist nicht korrekt. Siehe Nachweis:

Nur, wenn ich "left-hand" anklicke, dann kommt der Text rechts hinter dem Eingabefeld. Ich habe das Problem aber inzwischen selbst gelöst: Wenn man right-hand (die letzte Option) klickt, funktioniert es.

0 votes
by s024483 (220 points)

Ich poste hiermit noch meine Array-Lösung für Frage 2. Der PHP-Code funktioniert auch, aber sollte ich das tatsächlich für alle Altersstufen durchprogrammieren wollen, würde das sehr aufwendig werden. Ganz kompliziert würde es spätestens dann sein, wenn ich in die if-Bedingung noch weitere Variablen aufnehmen würde (in diesem Beispiel vielleicht Alter, in dem man angefangen hat, Sport zu treiben, um die Liste zusätzlich auch von unten her zu begrenzen).

Gibt es vielleicht noch eine elegantere Variante, das zu programmieren, ohne, dass ich für jeden Itemwert, bzw. Kombination aus Itemwerten angeben muss, wie viele Items angezeigt werden?

$items = array(1,2,3,4,5,6,7,8,9,10); // Items 1-10 are always displayed (age 9-18)
    if (value('SD04_01') == 19) {
      $items[] = 11; // 19 year old gets one extra item
    }
    if (value('SD04_01') == 20) {
      $items[] = '11-12'; // 20 year old gets two extra items
    }
    if (value('SD04_01') == 21) {
      $items[] = '11-13'; // 21 year old gets two extra items
    }
    
    // ask combined question
    question('FL13','combine=FL14', 'combine=FL15', $items); 

Für einen Zwanzigjährigen wird dann z.B. folgendes angezeigt:

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

...