0 votes
in SoSci Survey (dt.) by s247189 (150 points)
edited by SoSci Survey

Guten Abend,
Ich habe bei meinem Fragebogen eine interne Variable hinterlegt, die den CO2 Fussabdruck von den Teilnehmenden speichert. Nun möchte ich einen Platzhalter anhand der Werte dieses Fussabdrucks definieren.

if (value('tb_result') > 600) {
  replace('%social%', 'Ihr Fußabdruck ist höher als der Durchschnitt.');
} elseif ((value('tb_result') > 400) and (value('tb_result' <=600))) {   
  replace('%social%', 'Ihr Fußabdruck entspricht etwa dem Durchschnitt.');
} elseif (value('tb_result') <= 400) {   
  replace('%social%', 'Ihr Fußabdruck ist tiefer als der Durchschnitt.');
}

Grösser und kleiner ist keine Problem, aber den Bereich zwischen 400 und 600 kg kann ich nicht festlegen.

Können Sie mir da weiterhelfen?

Besten Dank und freundliche Grüsse

1 Answer

0 votes
by SoSci Survey (316k points)

So falsch sieht das eigentlich nicht aus. Sie können sich die Teilergebnisse auch einfach mal anzeigen lassen:

debug(value('tb_result'));
debug(value('tb_result') > 600);
debug(value('tb_result') > 400);
debug(value('tb_result') <=600);
debug(value('tb_result') <= 400);

Warum es trotzdem nicht funktioniert? Schauen Sie hier mal die Klammern an:

} elseif ((value('tb_result') > 400) and (value('tb_result' <=600))) {   

Da wird erst geprüft, ob der Text (!) 'tb_result' kleiner oder gleich 600 ist. Und dann wird dieses logische false als Parameter für value() verwendet.

Das mit den Klammern fiel mir aber auch erst auf, als ich die Teil-Bedingungen ins debug() kopiert habe, und es einmal komisch aussah.

by s247189 (150 points)
Super, vielen Dank! Habe die Klammern angepasst und nun passt es.

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

...