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

Hallo ich hab folgendes Problem:
Ich möchte, wenn bei einer Filterfrage "Nein" ausgewählt wird, dass auf der gleichen Seite eine andere Frage eingeblendet wird. Wähler ich bei der Filterfrage "Ja" aus, soll die Frage auch wieder verschwinden.

Bisher habe ich folgenden Code verwendet:

<!--
var optionA_AI06_02 = document.getElementById("AI06_02"); 

var frage_AI07 = document.getElementById("AI07_qst");

function toogle_AI07() {
  if (optionA_AI06_02.value == "2"){
    frage_AI07.style.display = "";

} else {
    frage_AI07.style.display = "none";
  }
}


SoSciTools.attachEvent(optionA_AI06_02, "click", toogle_AI07);
SoSciTools.attachEvent(optionA_AI06_01, "change", toogle_AI07);

toogle_AI07();
// -->
</script>

Frage AI07 soll angezeigt werden, wenn bei Frage AI06 "Nein" angeklickt wird. Nein ist bei AI06 die zweite Antwortmöglichkeit also sollte AI07 angezeigt werden, wenn AI06_02 ausgewählt wird.

Abschließend soll die Frage auch wieder ausgeblendet werden, wenn man versehentlich "Nein" angeklickt hat anstatt "Ja" (was AI06_01 entsprechen würde).

Habe ich den Code richtig angewendet?

Vielen Dank im Voraus für die Hilfe! :-)

in SoSci Survey (dt.) by s115114 (140 points)

1 Answer

0 votes

Hallo,

also, so sieht der Code ja schon mal gut aus, aber wenn Sie mir jetzt noch einen Link auf genau (!) die Seite im Pretest schicken könnten, und vielleicht was genau das Problem ist, dann können wir uns das noch mal genauer angucken ;)

Viele Grüße

by s139847 (2.7k points)
Vielen Dank für die schnelle Antwort.
Sobald sie den Link geöffnet haben, sollten sie auf der richtigen Seite landen. Es handelt sich um die Fragen AI07 und AI08. Wenn AI07 mit "Nein" beantwortet wird, sollte erst Frage AI08 erscheinen. Setzt man bei AI08 wieder einen Haken bei "Ja" sollte die Frage auch wieder verschwinden.

Link zum Pretest: https://www.soscisurvey.de/rwbk/?act=RwU5QymMCks38rvlNlGdt4g8

Mir wird übrigens noch folgende Fehlermeldung angezeigt:
Warnung
Warnung: Das PHP Konstrukt var darf im PHP-Code nicht verwendet werden.

Warnung: Der PHP-Code enthält Funktionen oder PHP-Elemente, die nicht für die Verwendung im Fragebogen freigegeben wurden. Falls Sie der Meinung sind, dass die monierten Konstrukte ungefährlich sind, setzen Sie sich bitte mit dem Administrator in Kontakt!
Ah, Sie haben zwei kleine Probleme:

1) Der Code muss in einem HTML Fenster als Javascript Code ausgeführt werden.
2) anstatt .value sollten Sie .checked in Ihrem Filter verwenden.

Das müsste dann ungefähr so aussehen:

<script type="text/javascript">
var optionA_AI06_02 = document.getElementById("AI06_02");

var frage_AI07 = document.getElementById("AI07_qst");

function toogle_AI07() {
  if (optionA_AI06_02.checked){
    frage_AI07.style.display = "";

} else {
    frage_AI07.style.display = "none";
  }
}


SoSciTools.attachEvent(optionA_AI06_02, "click", toogle_AI07);
SoSciTools.attachEvent(optionA_AI06_01, "change", toogle_AI07);

toogle_AI07();
<script/>
Sobald ich den HTML Code einfügen, verschwindet alles im Fragebogen was danach kommt. Der Next Button ist danach auch nicht mehr ersichtlich und die Toggle-Funktion funktioniert auch nicht.

https://www.soscisurvey.de/rwbk/?act=mq1F9eSLqZXKfPsGriCYrbAA

Trotzdem vielen Dank für die schnelle Hilfe!
ah, dummer Tippfehler von meiner Seite. Es muss natürlich in der letzten Zeite </script> und nicht <script/> heißen.
Ich habe nun den Code korrigiert, allerdings passiert immer noch nichts, wenn ich auf Ja oder Nein klicke.
Ich möchte Sie damit jetzt auch nicht endlos beschäftigen. Falls Sie dennoch noch eine Idee haben sollten, würde ich mich über eine Antwort freuen. Andernfalls nehme ich es Ihnen nicht übel, wenn Sie sich anderen Problemen annehmen.
Ich bedanke mich trotzdem schonmal für Ihren super Support! :-)

<script type="text/javascript">
var optionA_AI07_02 = document.getElementById("AI07_02");

var frage_AI08 = document.getElementById("AI08_qst");

function toogle_AI08() {
  if (optionA_AI07_02.checked){
    frage_AI08.style.display = "";

} else {
    frage_AI08.style.display = "none";
  }
}


SoSciTools.attachEvent(optionA_AI07_02, "click", toogle_AI08);
SoSciTools.attachEvent(optionA_AI07_01, "change", toogle_AI08);

toogle_AI08();
</script>

Die Fragen heißen mittlerweile AI07 und AI08. Habe dementsprechend den Code abgeändert.
also, ich habe den Fehler glaube ich gefunden. Sie müssen natürlich  optionA_AI07_01 analog zu optionA_AI07_02 oben als var anlegen. Sonst kann unten ja kein .attachEvent() stattfinden. Da habe ich auch etwas blind auf den Code gestarrt ;)
...