0 votes
in SoSci Survey (dt.) by s222544 (640 points)
edited by SoSci Survey

Hallo SoSci Survey Online Support,

in meinem Projekt soll ich einen Screenout Filter einbauen, der erst ein screenout durchführt nachdem die Verständnisfragen zwei Mal falsch beantwortet wurden.

Ich habe versucht, mich an dem Code aus dieser Frage zu orientieren, aber mein Code funktioniert nicht.

https://support.soscisurvey.de/?qa=55779/automatisches-screenout-nach-fails-aufmerksamkeitschecks

Hier ist mein ursprünglicher Code ohne Screenout nach 2 Mal falsch beantworten - hier kann man unendlich oft die Fragen falsch beantworten, man kommt immer wieder zu den Fragen

if((value('S106')==2) && (value('S107_01')==1) && (value('S107_02')==2) && (value('S107_03')==2) && (value('S107_04')==1) && (value('S107_05')==1) && (value('S108')==1) && (value('S139')==1)) {
goToPage('Start');
}
else {
text('Incorrect_answer');
goToPage('Check');
}

Hier ist der falsche Code:

$correct = (value('S106') == 2) + (value('S107_01') ==1) + (value('S107_02') == 2)  + (value('S107_03') == 2)  + (value('S107_04') == 1) + (value('S107_05')==1) + (value('S108')==1) + (value('S139')==1);
if ($correct < 2) {
  // Screenout
  text('screenout');
  buttonHide();
  pageStop();
}

Jetzt möchte ich einbauen, dass goToPage('Check') maximal 2x durchgeführt wird; meine Idee war zu zählen, wie oft die Seite aufgerufen wird und 1 zu addieren - jedoch würde dies auch den ersten ursprünglichen Aufruf zählen.

Vielen Dank für Ihre Hilfe!

1 Answer

0 votes
by SoSci Survey (327k points)

Sie haben zwei Möglichkeiten:

1. Unkompliziert

Verwenden Sie kein goToPage(), sondern legen Sie die Frage mit dem Aufmerksamkeits-Check einfach nochmal in den Fragebogen. Setzen Sie an den Anfang der Seite einen PHP-Filter, damit die Seite übersprungen wird, wenn die Antworten korrekt waren.

2. Komplizierter

Sie können auch hochzählen - dafür würde sich registerVariable() oder eine interne Variable anbieten. Dann müssen Sie aber zusätzlich mit getRoute() noch aufpassen, dass Sie nur zählen, wenn die Seite mittels "next" erreicht wurde, nicht wenn sie neu geladen wird.

by s222544 (640 points)
Vielen Dank für Ihre Antwort!

Möglichkeit 1 würde nach zweimaligen Falschbeantworten aber nicht zum Screenout führen, oder?

Könnten Sie sich bitte meinen Code ansehen und verbessern?

$falsch = (value('S106') != 2) + (value('S107_01') !=1) + (value('S107_02') != 2)  + (value('S107_03') != 2)  + (value('S107_04') != 1) + (value('S107_05')!=1) + (value('S108')!=1) + (value('S139')!=1);

if ($falsch <8) {
text('Incorrect_answer');
goToPage('Check');
}
if ($falsch == 16) {
  // Screenout
  text('screenout');
  buttonHide();
  pageStop();
}

Selbst, wenn ich zwei Mal alle Fragen falsch beantworte, wird mir trotzdem die Fragenseite erneut aufgerufen.

Vielen Dank!
by SoSci Survey (327k points)
> Möglichkeit 1 würde nach zweimaligen Falschbeantworten aber nicht zum Screenout führen, oder?

Ja und nein. Sie würden auf der Seite nach der zweiten Frage nochmal einen Filter setzen (denselben) und wenn die Antwort (wieder) falsch ist, würden Sie dadurch einen Screenout auslösen.

> Könnten Sie sich bitte meinen Code ansehen und verbessern?

Ohne Kontext eher nicht :) Aber

> wird mir trotzdem die Fragenseite erneut aufgerufen.

lassen SIe das goToPage() weg, wenn Sie Möglichkeit 1 programmieren möchten.
by s222544 (640 points)
edited by s222544
Vielen Dank für Ihre Antwort.

Wenn ich dieselben Fragen verwende, so erscheint auf der zweiten Seite der Hinweis, dass die Frage bereits auf der vorherigen Seite abgefragt wurde:
Notice (page 5)
One or more variables (S106) have already been asked on page 4. Please note that the answers from page 4 are shown here and that they will be subsequently replaced. If you require multiple similar questions, please create a copy of the question.

Wie kann ich diese Meldung ignorieren?

In Ihrer ersten Antwort schreiben Sie: Setzen Sie an den Anfang der Seite einen PHP-Filter, damit die Seite übersprungen wird, wenn die Antworten korrekt waren.

Das habe ich mit folgendem Code auf der zweiten Seite umgesetzt:
if((value('S106')==2) && (value('S107_01')==1) && (value('S107_02')==2) && (value('S107_03')==2) && (value('S107_04')==1) && (value('S107_05')==1) && (value('S108')==1) && (value('S139')==1)) {
goToPage('Outcome draws');
}

darunter wiederholen sich die identischen Fragen.
Auf der nächsten Seite: steht dieser PHP Code:

if((value('S106')!=2) ||  (value('S107_01')!=1) ||  (value('S107_02')!=2)|| (value('S107_03')!=2) ||  (value('S107_04')!=1) ||  (value('S107_05')!=1) ||  (value('S108')!=1) ||  (value('S139')!=1)) {
 text('screenout');
  buttonHide();
  pageStop();
}

Wird den Teilnehmern bei der Erhebung die Notiz angezeigt? (Im Debug Modus und beim grünen Testen wird sie mir angezeigt).

Ist meine Umsetzung so richtig?
by SoSci Survey (327k points)
> erscheint auf der zweiten Seite der Hinweis, dass die Frage bereits auf der vorherigen Seite abgefragt wurde

Ja, das ist korrekt - und in Ihrem Fall ja auch so gewollt. Und nein, den Hinweis sehen nur Sie, die Befragten sehen davon nichts.

> Ist meine Umsetzung so richtig?

Funktioniert es denn?
by s222544 (640 points)
Ja, der Screenout funktioniert wie gewollt.  Danke für die Bestätigung.
by s222544 (640 points)
Mir ist doch noch ein Fehler aufgefallen, den ich ohne Ihre Hilfe nicht lösen kann. Ich bitte sehr um Ihre Unterstützung.

Wenn der Proband beim ersten Versuch Frage 1 richtig beantwortet, Fragen 2 und 3 nicht, wird er erneut zur Fragenbeantwortung gebeten, bei der der Proband Frage 1 nun falsch beantwortet, Fragen 2 und 3 aber richtig.

Dieses Szenario führt zum Screen-out, weil auf Seite 2 Antworten 2 und 3 nicht mit den richtigen übereinstimmen, obwohl es nur eine Falschbeantwortung war und nicht zwei.

Wie kann ich das Problem lösen, dass ein Proband beim ersten Versuch eine Frage falsch beantwortet, beim zweiten Versuch diese korrigiert, aber einen neuen Fehler macht?

Da ich diesselbe Fragen verwende, kann ich (meiner Meinung nach) keine Kombinationen der Antworten von Versuch 1 und 2 verwenden,  da die Antworten spätestens beim zweiten Ausfüllen überschrieben werden.

Ich bedanke mich für Ihre Unterstützung.
by SoSci Survey (327k points)
> Dieses Szenario führt zum Screen-out, weil auf Seite 2 Antworten 2 und 3 nicht mit den richtigen übereinstimmen

Also, aus meiner Sicht sind nach der Änderung wieder 2 falsch - und das ist nunmal das Screenout-Kriterium. Ich würde da ehrlich gesagt nichts ändern. Sonst könnte man einfach alle drei Optionen ändern, und würde immer durchkommen.

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

...