0 votes
in SoSci Survey (dt.) by s233129 (245 points)
edited by SoSci Survey

Ich habe diesen Code, aber er filtert nicht richtig. Alle Personen mit einem Wert von unter oder gleich 2,0 sollen zu Screenout gelangen.
Ich glaube aber die Umcodierung hat nicht funktioniert.

$fragen = [
    'BG02' => [1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, -9 => 0],
    'BG03' => [1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, -9 => 0],
    'BG04' => [1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 5, -9 => 0],
    'BG05' => [1 => 1, 2 => 2, 3 => 2, 4 => 3, 5 => 3, 6 => 4, 7 => 5, 8 => 5, -9 => 0],
    'BG06' => [1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, -9 => 0]
];

$summe = 0;
foreach ($fragen as $frage => $codes) {
  $antwort = value($frage);
  $summe += $codes[$antwort];  // Hier passiert das Umkodieren und Aufsummieren
}

//  der Mittelwert
$durchschnitt = $summe / 5;
if ($durchschnitt <= 2) {
    goToPage('Screenout');
}

das ist die Debug Info:
[Warnung] Der Wert von Variable BG02 wurde geändert
[Information] Antwort auf BG02 = 2
[Warnung] Der Wert von Variable BG03 wurde geändert
[Information] Antwort auf BG03 = 2
[Warnung] Der Wert von Variable BG04 wurde geändert
[Information] Antwort auf BG04 = 6
[Warnung] Der Wert von Variable BG05 wurde geändert
[Information] Antwort auf BG05 = 3
[Information] Antwort auf BG06 = 3
[Information] Fragen bisher zu 17% vollständig beantwortet
[Verarbeitung] Erstelle Seite 12 in Fragebogen base
[Information] value("BG02") = 2
[Information] value("BG03") = 2
[Information] value("BG04") = 6
[Information] value("BG05") = 3
[Information] value("BG06") = 3

Könntet Ihr mir Bitte helfen?

by SoSci Survey (327k points)
Sieht doch soweit schon ganz gut aus. Der berechnete Mittelwert wäre hier nach Transformation der Mittelwert aus 2,2,5,2,3, also 2,8 - das ist größer als 2, damit greift der Screenout nicht. Passt also, oder?

Wenn nicht, dann ergänzen Sie doch bitte vor dem IF am Ende noch ein

debug($summe);
debug($durchschnitt);
by s233129 (245 points)
Es kommt dann leider auch der screenout (also nachdem ich "debug($summe);
debug($durchschnitt);" eingefügt habe) und diese debug Information wird angezeigt: [Verarbeitung]    Lese Antworten von Seite 11
[Information]    Antwort auf BG02 = 4
[Information]    Antwort auf BG03 = 5
[Information]    Antwort auf BG04 = 5
[Information]    Antwort auf BG05 = 8
[Information]    Antwort auf BG06 = 3
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 12 in Fragebogen base
[Information]    value("BG02") = 4
[Information]    value("BG03") = 5
[Information]    value("BG04") = 5
[Information]    value("BG05") = 8
[Information]    value("BG06") = 3
debug()    Inhalt: $summe = 22 (integer)
debug()    Inhalt: $durchschnitt = 4.4 (double)
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr. 13

1 Answer

+1 vote
by SoSci Survey (327k points)

Danke für die Debug-Informationen.

Es kommt dann leider auch der screenout

Meine Vermutung ist, dass Sie den Screenout auf Seite 13 gepackt haben? Und das wäre dann nun mal einfach die nächste Seite, die nach Seite 12 kommt.

Einen Screenout würde ich nicht mit goToPage() bauen, sondern mit pageStop(), vgl. Screenout.

Alternativ können Sie die Seite auch aktiv überspringen, wenn die Screenout-Kriterien nicht erfüllt sind.

if ($durchschnitt <= 2) {
    goToPage('Screenout');
} else {
    goToPage('hinter_den_screenout');
}
by s233129 (245 points)
Ja, das wars!! :D Vielen Dank!

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

...