0 votes
ago in SoSci Survey (dt.) by s343721 (150 points)

Ich möchte einen PHP-Filter erstellen, der von zwei Bedingungen (ja/nein Fragen) abhängt und eine bestimmte Seite ausblenden bzw. anzeigen soll.

Dabei folgende Besonderheit:
Filterfrage 1 (GE09) wird allen Teilnehmenden angezeigt
Filterfrage 2 (GE10) wird nur Partnern (ca. 30% der Stichprobe) angezeigt, d.h. für viele liegt gar keine Antwort für diese Frage vor.
Wenn Frage 1 value == 2 (nein), soll Seite 3 IMMER angezeigt werden (Angabe bei Frage 2 ist dann egal)
Wenn Frage 2 value == 2 (nein), soll Seite 3 IMMER angezeigt werden (Angabe bei Frage 1 ist dann egal)
Ansonsten soll Seite 3 immer ausgeblendet werden (Seite 3 wird vmtl. für 95% ausgeblendet werden)

Es gibt vier Antwortmöglichkeiten:
Frage 1 == 1 (ja) & Frage 2 == 1 (ja) ---> Seite 3 ausblenden
Frage 1 == 1 (ja) & Frage 2 == 2 (nein) ---> Seite 3 anzeigen
Frage 1 == 2 (nein) & Frage 2 == 1 (ja) ---> Seite 3 anzeigen
Frage 1 == 2 (nein) & Frage 2 == 2 (nein) ---> Seite 3 anzeigen

(1) Was wird dieser Code machen, wenn für GE10 gar keine Antwort vorliegt? Ich möchte, dass Seite 3 in dem Fall ausgeblendet wird:
if (
(value('GE09') == 1) &&
(value('GE10') == 1)) {
goToPage('Kind2'); // Fragen auf Seite 3 werden übersprungen
}

(2) Wo platziert man den Filter? Verstehe ich es richtig, dass der Filter NICHT auf der Seite, wo die Filterfragen stehen, platziert wird, sondern auf der Seite 3, die angezeigt bzw. ausgeblendet werden soll?

1 Answer

0 votes
ago by SoSci Survey (366k points)

(1) Was wird dieser Code machen, wenn für GE10 gar keine Antwort vorliegt?

Der value()-Befehl wird in dem Fall einen leeren Wert liefern, also wird value('GE10') == 1 zu false, und der Filter greift nicht.

Ich möchte, dass Seite 3 in dem Fall ausgeblendet wird:

Dann müssen Sie bitte ein logisches ODER (||) statt dem UND (&&) zwischen die beiden Bedingungen schreiben: Sie möchten Sie Seite ja überspringen, wenn die eine oder die andere Bedingung erfüllt ist.

if (
  (value('GE09') == 1) ||
  (value('GE10') == 1)
) {
  goToPage('next'); // Diese Seite überspringen
}

(2) Wo platziert man den Filter?

Dieser Filter würde direkt bei der Ausführung zur nächsten Seite springen, sondern zu dem Zeitpunkt schon die Antworten für GE09 oder GE10 vorliegen. Er wird demnach entweder zu Beginn der Seite platziert, die übersprungen werden soll, oder auf der vorherigen Seite im Bereich "Antworten mittels PHP-Code verarbeiten".

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

...