0 votes
in SoSci Survey (dt.) by s154695 (485 points)
closed by SoSci Survey

Guten Tag!

Die Teilnehmenden meiner Befragung sollen in diesem Rahmen das Ergebnis (Mittelwert) einer vergangenen Evaluation ihrer Lehrveranstaltungen angeben.
Um dieses einordnen zu können, sollen Sie zudem das Maximum der Skala (bestmöglicher Wert) und das Minimum der Skala (schlechtesmöglicher Wert) angeben.

Nun möchte ich überprüfen, ob der angegebene Mittelwert auch zwischen Minimum und Maximum liegt. Allerdings können die Skalen ja sowohl von niedrigen zu hohen Werten gehen (z.B. 1 als schlechteste Wertung, 6 als beste Wertung) als auch von hohen zu niedrigen Werten (z.B. 6 als schlechteste Wertung, 1 als beste Wertung).

Wenn der Mittelwert nicht innerhalb der Skala liegt, soll den Teilnehmenden eine Warnung angezeigt werden (abgespeichert im Textbaustein 'TX03').

Ich bin bei folgendem Code angekommen:

$value1 = value('CS01_01'); // Maximum der Skala
$value2 = value('CS01_02'); // Minimum der Skala
$checkValue = value('CS01_03'); // Wert, der überprüft werden soll

// Überprüfen, ob der überprüfte Wert zwischen den beiden Vergleichswerten liegt
if ($checkValue >= $value1 && $checkValue <= $value2) {
    goToPage('next'); 
} else if ($checkValue <= $value1 && $checkValue >= $value2) {
    goToPage('next');
} else {
    repeatPage('TX03');
}

Dieser ist allerdings anscheinend wirkungslos/fehlerhaft, da eine Weiterleitung auf die nächste Seite auch dann stattfindet, wenn die Bedingungen nicht zutreffen (z.B. Skala von 1 bis 6 mit Mittelwert 8).

Können Sie mir hier weiterhelfen?
Vielen Dank und viele Grüße!

closed with the note: Problem geklärt, s. Kommentare.
by SoSci Survey (327k points)
Was zeigt die Debug-Information denn in Ihrem Beispiel mit Skala 1-6 und Mittelwert 8 an?

Kleiner Tipp:

$value1 = (int)value('CS01_01'); // Maximum der Skala
$value2 = (int)value('CS01_02'); // Minimum der Skala
$min = min($value1, $value2);
$max = max($value1, $value2);
by s154695 (485 points)
Ich bin mir nicht sicher, ob der Tipp mir schon weiterhilft. Die Debug-Information zeigt an, dass die Werte entsprechend gespeichert wurden:

[Information]    Antwort auf CS01_01 = 1
[Information]    Antwort auf CS01_02 = 6
[Information]    Antwort auf CS01_03 = 8

und für die einzelnen Variablen ergibt es je:

Debug-Information für 'CS01_01':
'CS01_01' = CS01_01 (string)
value('CS01_01') = 1
by SoSci Survey (327k points)
Schon mal gut zu wissen, dass diese Werte korrekt ankommen. Mich hätte vor allem aber noch interessiert, ob die Debug-Information auch etwas dazu sagt, was sonst noch auf der Seite passiert und/oder ob das goToPage() ausgelöst wird.

Ergänzen Sie gerne auch noch ein debug('A'); und debug('B'); in den beiden goToPage()-Zweigen, damit Sie nachvollziehen können, welches IF greift.
by s154695 (485 points)
Vielen Dank für die Unterstützung! Die Debug-Information hat darüber keine Aussage getroffen. Ich habe jetzt nochmal herumprobiert und es funktioniert (ergänzt durch den Code in Ihrem kleinen Tipp), wenn ich den Code auf die nächste Seite schiebe.

Ursprünglich hatte ich es so angelegt, dass die Information auf Seite 1 abgefragt wurde, auf Seite 2 war ausschließlich der PHP-Code und auf Seite 3 dann die nächste Seite.

Der Code ist nun auf Seite 3 und funktioniert problemlos. Danke nochmal für die Hilfe! Wirklich beeindruckend, wie Sie sich immer in die verschiedensten Problemstellungen reindenken. :-)

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

...