0 votes
in SoSci Survey (dt.) by s081908 (300 points)

Hallo,
wir möchten unseren Teilnehmern am Ende der Befragung eine kurze Rückmeldung Ihrer Lebenszufriedenheit geben.
Allerdings funktioniert die Auswertung 'durchschnittlichzufrieden' nicht, d.h. selbst wenn man die Items dementsprechend beantwortet, erhält man stattdessen die Rückmeldung 'zufrieden'. Hier ist der entsprechende PHP-Code dazu:

$sumSW = valueSum ('SW02', array(1,2,3,4,5,)); 
if ($sumSW > 30) {
  text('SW_extremzufrieden');
} elseif ($sumSW < 20) {
  text('SW_eherunzufrieden');
} elseif ($sumSW <= 30) {
  text('SW_zufrieden');
} elseif ($sumSW > 20) {
  text('SW_zufrieden');
} elseif ($sumSW = 20) {
  text('SW_durchschnittlichzufrieden');
}

Wo könnte der Fehler sein?

Vielen Dank im Voraus.

by SoSci Survey (302k points)
Tipp: Verwenden Sie den {}-Knopf, um PHP-Code als Code zu markieren und entsprechend zu formatieren. Ich habe mit erlaubt, das der Leserlichkeit halber in der Frage anzupassen.

1 Answer

0 votes
by SoSci Survey (302k points)

Bitte kontrollieren Sie die Reihenfolge der Bedingungen im IF-Filter. Ich nehme einmal den Wert 20 als Beispiel:

Der erste Filter trifft nicht zu ($sumSW > 30) und auch der zweite nicht ($sumSW < 20), aber der dritte schon, denn 20 ist kleiner/gleich 30 ($sumSW <= 30). An dieses Stelle wird der Text 'SW_zufrieden' ausgegeben und der Filter nicht weiter verarbeitet.

by s081908 (300 points)
Vielen Dank für die schnelle Antwort. Ich habe die Reihenfolge entsprechend angepasst:

{ $sumSW = valueSum ('SW02', array(1,2,3,4,5,));
if ($sumSW > 30) {
  text('SW_extremzufrieden');
} elseif ($sumSW <= 30) {
  text('SW_zufrieden');
} elseif ($sumSW > 20) {
  text('SW_zufrieden');
} elseif ($sumSW = 20) {
  text('SW_durchschnittlichzufrieden');
} elseif ($sumSW < 20) {
  text('SW_eherunzufrieden');
} }

Leider funktioniert die Auswertung immer noch nicht.
by s081908 (300 points)
Ups jeweils erste und letzte Klammer war ein Formatierungsversuch und ist natürlich nicht im PHP-Code im Fragebogen enthalten.
by SoSci Survey (302k points)
Nun ja ... das <= 30 (nun an Stelle 2) trifft ja immer noch auf den Wert 20 zu. Versuchen Sie es doch einmal mit: >30, >20, =20, <20. Wo dann der Text "SW_zufrieden" noch hineinpassen soll, ist mir allerdings nicht ganz klar. Was wäre denn ein Wert, wo dieser auftauchen soll?
by SoSci Survey (302k points)
PS: Die Formatierung als Code klappt nur in der Frage - nicht in Kommentaren :)
by s081908 (300 points)
Mit der von Ihnen vorgeschlagenen Reihenfolge funktioniert jetzt die Rückmeldung 'durchschnittlich zufrieden'. Dafür aber allerdings komischerweise nicht mehr die Rückmeldung 'eher unzufrieden', stattdessen erscheint erneut 'durchschnittlichzufrieden'.
by SoSci Survey (302k points)
Für welchen Wert denn? Möchten Sie Ihre Frage oben einfach nochmal editieren und den aktuellen Code zusätzlich ergänzen? Oder den aktuellen Code in einem Kommentar posten?
by s081908 (300 points)
$sumSW = valueSum ('SW02', array(1,2,3,4,5,));
if ($sumSW > 30) {
  text('SW_extremzufrieden');
} elseif ($sumSW > 20) {
  text('SW_zufrieden');
} elseif ($sumSW = 20) {
  text('SW_durchschnittlichzufrieden');
} elseif ($sumSW < 20) {
  text('SW_eherunzufrieden');
}


für einen Wert unter 20 (ich hab es für den Wert 5 ausprobiert) erscheint jetzt die Rückmeldung 'durchschnittlichzufrieden'
by SoSci Survey (302k points)
Oh ja ... ein Klassiker :) Für den Vergleich müssen Sie ein doppeltes Gleichheitszeichen verwenden, nicht das einfache. Das einfache in der dritten Bedingung sorgt dafür, dass Sie der Variable $sumSW den Wert 20 zuweisen.
by s081908 (300 points)
Juhu, jetzt klappt es! 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

...