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

0 votes

folgendes Problem:

Ein Ursprungsfilter ermittelt ob Frage A oder Frage B angezeigt wird. A und B ermitteln einen Wert zwischen 0 und 100, lediglich die Art und Weise wie die Frage gestellt wird unterscheidet sich. Demnach ist immer eine der Fragen ausgeblendet und nur die andere wird abgefragt.

Jetzt möchte ich einen weiteren Filter auf das Ergebnis von A oder B (je nach dem welche zuvor angezeigt wird) anwenden. Wenn A oder B größer 0 --> Frage C, oder wenn Frage A oder B = 0 --> Frage D.

Ich habe bereits mehrere Varianten versucht, der PHP-Filter funktioniert eigentlich auch wie gewünscht, jedoch erhalte ich immer die Warnung im Fragebogen
"Die Variable B_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln."

diese Warnung ist natürlich störend und sollte nicht angezeigt werden. Wie kann ich diese Warnung im Fragebogen also ausblenden bzw. den Code so umschreiben, dass gar keine Warnung generiert wird?

Hier ein Auszug meines PHP-Codes:

//Frage DB02 wenn Filter für mehr als 0 % 
if ((value('GP02_01') > 0) or (value('GP03_01') > 0)) {
  question('DB02', 'spacing=0');
}
//Frage DB06 wenn Filter = 0 % GPP 
if ((value('GP02_01') == "0") and (trim(value('GP03_01') == "")) or ((value('GP03_01') == "0") and (trim(value('GP02_01') == "")))) {
  question('DB06', 'spacing=0');
}

Der Verständlichkeit halber hatte ich die Fragen oben einfacher formuliert im Code ist
Frage A = GP02
Frage B = GP03
Frage C = DB02
Frage D = DB06

Vielen Dank für die Unterstützung.

in SoSci Survey (dt.) by s114147 (210 points)
edited by SoSci Survey

1 Answer

+1 vote
 
Best answer

diese Warnung ist natürlich störend und sollte nicht angezeigt werden.

Die Teilnehmer sehen sie auch nicht. Im einfachsten Fall lassen Sie also alles so, wie es ist.

Wenn Sie es aber gerne auch in der Vorschau hübscher haben möchten, verwenden Sie den Filter einfach nochmal - und packen Sie Ihre anderen Filter hinein:

if ((value('GP02_01') > 0) or (value('GP03_01') > 0)) {
  // Hier der innere Filter
  if (value('DB02') == 1) {
    // Whatever
  }
}
if ((value('GP02_01') == "0") and (trim(value('GP03_01') == "")) or ((value('GP03_01') == "0") and (trim(value('GP02_01') == "")))) {
  // Hier der innere Filter
  if (value('DB06') > 2) {
    // Whatever
  }
}
by SoSci Survey (85.1k points)
selected by s114147
...