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

Lieber SoSciSurvey Support,

ich habe eine etwas komplizierte Frage zu einer Filterfragenreihe, die mich vor Schwierigkeiten stellt. Wir haben einen Fragebogen erstellt, in der Personen randomisiert einer von zwei Gruppen zugeteilt werden. Diese randomisieren erfolgt für jedes Geschlecht einzeln. In den beiden Gruppen bekommen Personen anschließend einen unterschiedlichen Text und eine Grafik angezeigt. Nach dem Lesen dieses Textes sollen sie eine Verständnisfrage beantworten. Auf diese Verständnisfrage erhalten die Befragten Feedback. Ist die Antwort richtig läuft der Fragebogen weiter, ist die Antwort jedoch falsch, werden Sie wieder zwei Seiten zurück im Fragebogen auf die Seite mit dem Text und der Grafik geleitet. Diese Umleitung habe ich mit PHP-Code umgesetzt und klappt auch wunderbar. Allerdings ist nun das Problem, dass ich im Datensatz nicht nachvollziehen kann wer diese Antwort falsch beantwortet hat und wie oft. Die "alten" Antworten werden durch die Zurückleitung im Fragebogen einfach überschrieben. Kann ich auch im Datensatz abspeichern welche Antwort für jede Iteration der Befragung des Items gegeben wurde? Und wenn ja wie?

1 Answer

0 votes
by SoSci Survey (327k points)

Kann ich auch im Datensatz abspeichern welche Antwort für jede Iteration der Befragung des Items gegeben wurde?

Mit ein wenig PHP-Code ist auch das möglich. Zum Abspeichern benötigen Sie erstmal interne Variablen. Und dann würde ich an der Stelle ansetzen, wo die Befragten zurück-geleitet werden. Vermutlich haben Sie dort ein repeatPage() oder ein goToPage().

Fügen Sie vor diesem Befehl einen weiteren ein, der in einer internen Variable die Wiederholungen zählt, z.B.

$bisher = (int)value('IV01_01');
put('IV01_01', $bisher + 1);

Und natürlich können Sie die Antwort dann auch gleich noch in eine weitere Variable kopieren, z.B. aus AB01 wie folgt:

$antwort = value('AB01');
$speicherID = id('IV02', $bisher + 1);  // Verwendet IV02_01, IV02_02 u.s.w.
put($speicherID, $antwort);
by s109568 (170 points)
Ich bin leider in der Anwendung von PHP-Code noch nicht sehr geübt. Ich muss daher nochmal zur Umsetzung nachfragen. Die Randomisierung habe ich auf einer Fragebogenseite implementiert (S. 1). Dazu habe ich 3 Zufallsgeneratoren erstellt - jeweils einen für Männer, Frauen und die Geschlechtskategorie "andere". In der internen Variable RD04_01 wird für alle Personen abgespeichert in welcher Gruppe sie sind (1 für Experimentalgruppe, 2 für Kontrollgruppe).

Auf der nächsten Seite (S. 2) wird für die Experimentalgruppe und die Kontrollgruppe jeweils ein Text mit Grafik angezeigt (Filterfrage basierend auf RD04_01) (S. 2)

Auf Seite 3 dann die Feedbackfrage (RD06 für die Kontrollgruppe, RD05 für die Experimentalgruppe), auch wieder abhängig von der zugeordneten Gruppe.

Auf Seite 4 ist ein Text mit Feedback für die Kontrollgruppe (Filter abhängig von der Antwort auf RD06). Diese Seite wird mit goToPage übersprungen, wenn die Befragte Person in der Experimentalgruppe ist.

Auf Seite 5 erfolgt dann der Loop zurück in den Fragebogen. Wenn die Frage richtig beantwortet wurde wird im Fragebogen weitergeleitet. Wenn die Antwort falsch war leite ich mit goToPage() auf S.2 zurück, ansonsten weiter.

Auf Seite 6 ist wiederum das Feedback für die Experimentalgruppe (Filter abhängig von der Antwort auf RD05). Diese Seite wird mit goToPage übersprungen, wenn die Befragte Person in der Kontrollgruppe ist.

Auf Seite 7 ist dann der Loop für die Experimentalgruppe zurück in den Fragebogen. Wie bei der Kontrollgruppe: wenn die Antwort falsch war also wieder mit goToPage() auf S.2 zurück.

Auf Seite 5 und 7 müsste nun folgender PHP-Code:
$bisher = (int)value('IV01_01');
put('IV01_01', $bisher + 1);

Ich habe diesen Code nun so verstanden, dass die Variable IV01_01 (oder eine andere interne Variable) mit Zahlen von 0 aufsteigend befüllt wird, abhängig davon wie oft diese vorkommt? Auf welcher Seite muss diese Variable nun noch eingefügt werden? Wird Sie nur auf Seite 5 eingefügt erscheint die Fehlermeldung "Die Variable IV01_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.". Irgendwo muss die Variable also vorkommen. Ziehe ich sie einfach auf eine vorherige Fragebogenseite?

Der zweite Teil zum Abspeichern müsste bei mir für die Kontrollgruppe so aussehen:

$antwort = value('RD06');
$speicherID = id('IV02', $bisher + 1);  // Verwendet IV02_01, IV02_02 u.s.w.
put($speicherID, $antwort);

Oder muss die interne Variable IV02 nun auch noch irgendwo vorkommen?
by SoSci Survey (327k points)
> Auf Seite 7 ist dann der Loop für die Experimentalgruppe zurück in den Fragebogen. Wie bei der Kontrollgruppe: wenn die Antwort falsch war also wieder mit goToPage() auf S.2 zurück.

Wie sieht denn Ihr PHP-Code an dieser Stelle aus?

>  Auf welcher Seite muss diese Variable nun noch eingefügt werden?

Gar nirgends (also außer natürlich im Fragenkatalog), die Variable wird nur im PHP-Code via put() angesprochen.

> diese Variable nun noch eingefügt werden? Wird Sie nur auf Seite 5 eingefügt erscheint die Fehlermeldung

Oh ja, stimmt. Also, das ist keine Fehlermeldung, sondern nur ein Hinweis. Wenn er sie stört (die Befragten sehen sie nicht), dann ersetzen Sie

value('IV01_01')

durch

value('IV01_01', 'code:ifany');

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

...