0 votes
ago in SoSci Survey (dt.) by s109993 (13.0k points)
edited ago by s109993

Ich soll eine Fehlermeldung triggern, wenn drei offene Auswahlfelder nicht logisch beantwortet werden. Die Antwortfelder wurden auf Zahlen limitiert. Der Code funktioniert, bis eben eine der drei Antwortfelder leergelassen wird. Dann kommt ein php-Error. welche Möglichkeiten gibt es, den Fehler zu unterdrücken, bzw. die ganze Bedingung zu ignorieren, sobald nicht alle drei Felder ausgefüllt werden.

if (((value('B002_02')) + (value('B002_03'))) >  (value('B002_01'))) {
  repeatPage('error_2');
}

Edit sagt: Ich könnte natürlich einfach eine if-Prüfung davor setzen, ob alle drei Fragen beantwortet wurden. Aber ich wollte mich einmal erkundigen, ob es mit Value auch eine elegantere Lösung gibt :) Auf SoSci-Wiki habe ich spontan nichts dazu gefunden.

1 Answer

0 votes
ago by SoSci Survey (366k points)
selected ago by s109993
 
Best answer

Es kommt darauf an, wie Sie ein leeres Eingabefeld behandeln möchten. Wenn Sie es wie eine 0 behandeln wollten, würde ein Typecasting via (int) ausreichen:

if (
  (
    ((int)value('B002_02')) + ((int)value('B002_03'))
  ) >  ((int)value('B002_01'))
) {
  repeatPage('error_2');
}

Die Klammern direkt um die value()-Aufrufe können Sie noch weglassen:

if ((int)value('B002_02') + (int)value('B002_03') > (int)value('B002_01')) {
  repeatPage('error_2');
}

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

...