0 votes
in SoSci Survey (dt.) by s272152 (180 points)

Wenn ich bei T504 Option 9 ausgewählt habe, soll mir auf der nächsten Seite des Fragebogens die T605 und die T606 angezeigt werden. Das funktioniert mit dem normalen Filter leider nicht. Deswegen habe ich schon versucht einen HTML Code dafür zu schreiben. Aber leider funktioniert auch das nicht. Vermutlich liegt es daran, dass ein weiterer Code auf der Seite 8 ebenfalls zu den Fragen T605 und T606 führt, nämlich die Optionen 5,6 und 7 der Frage T603. Wie kann ich dieses Problem beheben?
Viele Grüße und vielen Dank.
https://www.soscisurvey.de/test397003/?act=u6z7oSVWDvm9go7T6UeANEfF


// <!--
function DynamicFilterT504(auswahlIDT504, frageIDT605, frageIDT606) {

this.option9 = document.getElementById(auswahlIDT504 + "_09");
this.frageT605 = document.getElementById(frageIDT605 + "_qst");
this.frageT606 = document.getElementById(frageIDT606 + "_qst");

var that = this;

this.toggle = function() {
    if (that.option9.checked) {
        that.frageT605.style.display = ""; // Frage T605 einblenden
        that.frageT606.style.display = ""; // Frage T606 einblenden
    } else {
        that.frageT605.style.display = "none"; // Frage T605 ausblenden
        that.frageT606.style.display = "none"; // Frage T606 ausblenden
    }
}

SoSciTools.attachEvent(this.option9, "click", this.toggle);

this.toggle();

}

new DynamicFilterT504("T504", "T605", "T606");
// -->


// <!--
function DynamicFilter(auswahlIDT603, frageIDT605, frageIDT606) {

this.option5 = document.getElementById(auswahlIDT603 + "_05");
this.option6 = document.getElementById(auswahlIDT603 + "_06");
this.option7 = document.getElementById(auswahlIDT603 + "_07");
// ... (andere Optionen bleiben unverändert) ...
this.frageT605 = document.getElementById(frageIDT605 + "_qst");
this.frageT606 = document.getElementById(frageIDT606 + "_qst");

var that = this;

this.toggle = function() {
    if (that.option5.checked || that.option6.checked || that.option7.checked) {
        that.frageT605.style.display = "";
        that.frageT606.style.display = "";
    } else {
        that.frageT605.style.display = "none";
        that.frageT606.style.display = "none";
    }
}

// Event-Listener für neue Optionen hinzufügen
SoSciTools.attachEvent(this.option5, "click", this.toggle);
SoSciTools.attachEvent(this.option6, "click", this.toggle);
SoSciTools.attachEvent(this.option7, "click", this.toggle);
// ... (Event-Listener für andere Optionen bleiben unverändert) ...

this.toggle();

}

new DynamicFilter("T603", "T605", "T606");
// -->

1 Answer

0 votes
by SoSci Survey (305k points)

Wenn die Filterführung erst auf einer späteren Seite erfolgt, also nicht auf derselben Seite wie die Filterfrage, dann verwenden Sie anstatt von JavaScript-Code bitte einfache Fragefilter oder PHP-Filter.

by s272152 (180 points)
Danke, aber das funktioniert beides leider nicht.
if (value('T504') == 9) {
    question('T605');
    question('T606');

 2 aktive(r) Filter
Filter 1
Wenn eine der folgenden Antwortoption(en) ausgewählt wurde: 9
Dann Frage/Text T605 später im Fragebogen anzeigen (sonst ausblenden)
Filter 2
Wenn eine der folgenden Antwortoption(en) ausgewählt wurde: 9
Dann Frage/Text T606 später im Fragebogen anzeigen (sonst ausblenden)
by SoSci Survey (305k points)
Sie scheinen hier sowohl einen einfachen Filter als auch einen PHP-Filter zu verwenden. Bitte verwenden Sie nur eines davon.

Wenn Sie sich für den einfachen Filter entscheiden, was zeigt die Debug-Information auf der Seite mit T606 denn an?

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

...