0 votes
in SoSci Survey (dt.) by s110155 (255 points)

Hallo,

ich möchte gerne folgenden Code nur beim ersten Aufruf der Seite ausführen:

   $yogaMinutes += value('DF09_01', 'free');
    dbSet($keyYogaMinutes, $yogaMinutes);

Hiermit sollen kumulativ die Minuten, die Yoga geübt wurden, abgelegt werden. Wenn der Teilnehmer aber die Seite erneut aufruft (z.B. weil Angaben nicht gemacht wurden), werden diese Zeilen immer wieder ausgeführt und das resultiert dann natürlich in einer zu hohen Minutenanzahl.

Wie kann ich das lösen?

Danke!

1 Answer

0 votes
by SoSci Survey (304k points)

Eine sehr sichere Lösung bekommen Sie, wenn Sie die Werte erstmal getrennt speichern und die Variablen erst aufaddieren, wenn Sie sie Summe benötigen. Dann macht es auch nichts, wenn der Code 10-mal ausgeführt wird.

In den meisten Fällen (d.h. wenn Sie keinen Zurück-Knopf erlauben), können Sie ansonsten auch mit getRoute() arbeiten.

if (getRoute() == 'next') {
  $yogaMinutes += value('DF09_01', 'free');
  dbSet($keyYogaMinutes, $yogaMinutes);
}

Ich persönlich würde natürlich zu der 100% Lösung mit den getrennten Variablen raten. Einfach schon deshalb, weil man dann eine Evntualität weniger im Auge behalten muss.

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

...