0 votes
in Methoden-Fragen by s086064 (180 points)
edited by s139847

Liebes Support Team,
ich benötige Unterstützung, ich komme einfach nicht mehr weiter:

Fragebogenlink: https://www.soscisurvey.de/resistkrebs/?act=rwMmkyRH8smPzYcq6TM0mbuY

Ich verwende einen Fragebogen, der zulassen soll, dass wenn Ereignisse auftreten (Mehrfachauswahl auf S.18), dass dann auf den folgenden Seiten (S.19 – 45) (verbunden durch den PHP -Code: question('L232','combine=L206');) angeben kann:
1) Erstes Item (L232), in dem die Altersangabe gemacht werden kann, wann das Ereignis aufgetreten ist
2) Zweites Item (L206), durch das ein Ranking der empfundenen Belastung durch dieses Ereignis möglich ist, und die Auswahlfelder erlauben, dass 3) eine weitere Altersgabe gemacht werden kann, (falls das Ereignis mehrfach aufgetreten ist)* und 4) angegeben werden kann, dass man nicht darauf antworten will (keine Angabe).
Ich habe den FB so programmiert, dass man auf Seite 18 auswählt, welche Ereignisse aufgetreten sind und jedes Ereignis eine eigene Seite (19-45) hat um die Punkte 1)-4) abzufragen. Hierbei meine Frage, kann ich auf den Seiten 19-45, da diese dynamisch erscheinen, auf eine Antwort bestehen (Antworten erforderlich) und wenn ja, wie?

*Um eine weitere Altersangabe zu erhalten, will ich eine neue (dynamische) Zeile einblenden lassen, sofern Option F (also „weitere Altersangabe“) ausgewählt wird. Für die Zeile, die eingeblendet werden soll, habe ich eine Kopie von dem Item erstellt, dass die Altersangabe abfragt (L288, Kopie von L232) und würde diese Frage mit einer Kopie des Items (L206) ebenfalls mit einem PHP-Code verbinden.
Um die weitere Zeile auszublenden habe ich einen JavaScript Code erstellt, der leider nicht zu stimmen scheint. Können Sie mir hier helfen?

Syntax:

<script type="text/javascript">
<!--
var optionA = document.getElementById("L206_01a");  
var optionB = document.getElementById("L206_02a");
var optionC = document.getElementById("L206_03a");
var optionD = document.getElementById("L206_04a");
var optionE = document.getElementById("L206_05a");
var optionF = document.getElementById("L206_-01a");
var optionG = document.getElementById("L206_-02a");
var frage1 = document.getElementById("L288_qst");  

function toogle1() {
  if ((optionF.checked)) {
      frage1.style.display = "";
  } else {
    frage1.style.display = "none";
  }
}
 
SoSciTools.attachEvent(optionA, "click", toogle1);
SoSciTools.attachEvent(optionB, "click", toogle1);
SoSciTools.attachEvent(optionC, "click", toogle1);
SoSciTools.attachEvent(optionD, "click", toogle1);
SoSciTools.attachEvent(optionE, "click", toogle1);
SoSciTools.attachEvent(optionF, "click", toogle1);
SoSciTools.attachEvent(optionG, "click", toogle1);

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

Auf Seite 22 wird die folgende Fehlermeldung angezeigt: In der kombinierten Frage werden auf Position 1 Items mit unterschiedlichen Kennungen (3/4) kombiniert. Die Sortierung der Items in den Teilfragen ist wahrscheinlich unterschiedlich. Falls dies keine Absicht ist, kann es bei der Auswertung leicht zu falschen Interpretationen führen! Was meint SoSci damit?
(Fragebogenlink: https://www.soscisurvey.de/resistkrebs/?act=IFJ79bOWUwtPUbwlZ3ri7W3T)

Lieben Dank.

2 Answers

0 votes
by s139847 (2.7k points)

Hallo,

zu Ihrer ersten Frage: Wenn Sie Fragen dynamisch ein- und ausblenden, können Sie nicht mit den nativen Funktionen auf eine Antwort bestehen. Da die Frage in jedem Fall auf der Seite ist (z.T. nur unsichtbar) würden Sie sich damit ein Bein stellen. Wenn Sie unbedingt eine Frageprüfung brauchen, kann Ihnen diese Anleitung weiter helfen: Individuelle Antwortprüfung.

Zu Ihrer zweiten Frage: Soweit ich das sehen kann haben Sie die falschen Kennungen für die beiden Ausweichoptionen, die erste heißt z.B. L206_01DK. Ich kann Ihnen nur empfehlen die Fragekennungen mit dem Inspektor Ihres Browsers zu überprüfen, dann finden Sie solche Fehler schneller.

Viele Grüße

0 votes
by s086064 (180 points)

Lieben Dank für die Rückmeldung. Ich finde leider die Kennung nicht. Ich weiß, dass ich mir bei den Entwicklertools anschauen kann, welcher Fehler gerade vorliegt, die Ausweichkennung sehe ich jedoch nicht? Können Sie mich hier nochmal unterstützen?
Lieben Dank.

by SoSci Survey (306k points)
In den Entwicklertools finden Sie auch den "Inspektor". Damit können Sie Elemente im Fragebogen anklicken und sich genauere Informationen über diese Elemente ansehen.
by s086064 (180 points)
Entschuldigen Sie, aber ich finde keinen Inspektor, kann diese es sein, dass Sie diese Ansicht meinen?

SoSciTools.attachEvent=function(a,b,c){if(!a)throw Error("No element specified for SoSciTools.attachEvent()");if(a instanceof Array||"undefined"!==typeof NodeList&&a instanceof NodeList||"undefined"!==typeof HTMLCollection&&a instanceof HTMLCollection)for(var d=0;d<a.length;d++)SoSciTools.attachEvent(a[d],b,c);else if(b instanceof Array)for(d=0;d<b.length;d++)a.addEventListener?a.addEventListener(b[d],c,!1):a.attachEvent?a.attachEvent("on"+b[d],c):a["on"+b[d]]=c;else a.addEventListener?a.addEventListener(b,
c,!1):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}

Ich finde leider nicht die korrekte Ausweichkennung, um die Items korrekt zu programmieren. Auch ändert sich nichts, wenn ich "L206_01DK" in den JavaScript Code einfüge.
Haben Sie nochmal einen Hinweis für mich? Lieben Dank!
by SoSci Survey (306k points)
> ich finde keinen Inspektor

Pardon, in Chrome heißt es "Elements" - den Begriff "Inspektor" verwendet nur Firefox.

Ihre Ansicht ist das Script, welches im Hintergrund läuft. Offenbar an der Stelle, welche sich darübe beschwert, dass kein Objekt spezifiziert wurde (weil es vorher nicht gefunden wurde).

> Auch ändert sich nichts, wenn ich "L206_01DK" in den JavaScript Code einfüge.

Wenn Sie einen aktuellen Pretest-Link direkt zur betroffenen Seite posten, werfe ich gerne nochmal einen Blick darauf.
by s086064 (180 points)
Lieben Dank für die schnelle Rückmeldung. "Elemente" finde ich. Leider hilft mir das nicht! Ich fürchte mein Verständnis für Programmierung ist hierfür zu wenig ausgeprägt.
Ich habe den Code trotzdem hier mal eingefügt:
<script type="text/javascript">
<!--


SoSciTools.checkChars("L232_01", "0123456789", 2, null);
var scaleL206 = S2Scale.register("L206", [1], [0,1], 5);SoSciTools.checkChars("L288_01", "0123456789", 2, null);

// -->
</script>

Einen neuen Testlink ab dieser Seite finden Sie hier:
https://www.soscisurvey.de/resistkrebs/?act=cmMZGGMQ24uSp2pqED5tedpQ
Lieben Dank für die tolle Unterstützung!
by SoSci Survey (306k points)
Auf der Seite sehe ich die Frage L201. Diese enthält aber keine Ausweichoption.

Auf der folgenden Seite sehe ich dann L232/L206 - und den ersten Teil nochmal als L288. Abgesehen von der L288 sieht das alles korrekt aus.

Der JavaScript-Code, den Sie im letzten Kommentar notiert haben, scheint mit der ursprünglichen Fragen nichts zu tun zu haben.

Bevor wir jetzt aneinander vorbeireden daher meine Rückfrage: Was ist Ihre aktuelle Frage bzw. das Problem, welches Sie lösen möchten.
by s086064 (180 points)
Danke für Ihre Unterstützung und Ihre Geduld!
Auf S.18 finden Sie eine Mehrfachauswahl, sofern Optionen ausgewählt werden, sollen sie dann auf den folgenden Seiten (S.19 – 45) (verbunden durch den PHP -Code) eingeblendet werden (das funktioniert auch):
Beispiel anhand Seite 19 (question('L232','combine=L206');)
1) Erstes Item (L232) Altersangabe
2) Zweites Item (L206) Ranking der empfundenen Belastung UND die 3) die Ausweichoptionen: eine "weitere Altersgabe" oder "keine Angabe".

Um eine weitere Altersangabe zu erhalten, will ich eine neue (dynamische) Zeile einblenden lassen (L288), sofern Option F (also „weitere Altersangabe“) ausgewählt wird.
Um die weitere Zeile auszublenden habe ich einen JavaScript Code erstellt, der leider nicht zu stimmen scheint. Können Sie mir hier helfen?
by SoSci Survey (306k points)
Danke für die Erklärung. BItte ändern Sie die Zeile...

var optionF = document.getElementById("L206_DK");

... wie folgt ab:

var optionF = document.getElementById("L206_01DK");

EIne methodische Überlegung: Ist es sinnvoll, dass "weitere Altersangabe" nur alternative (!) zu der Bewertung ausgewählt werden kann? Ich hätte erwartet, dass diese Option (realisiert als Mehrfachauswahl, also noch eine dritte kombinierte Frage) immer ausgewählt werden kann, egal was in der Skala sonst noch gewählt ist.
by s086064 (180 points)
Lieben Dank, ich habe den Vorschlag, eine dritte kombinierte Frage. Die Programmierung funktioniert trotz allem nicht.
Ich hatte zuvor (mit nur zwei Variablen) die Variable F Ihren Angaben entsprechend geändert und auch das hatte nicht geklappt. Ich bin wirklich ratlos.
Würden Sie sich den Fragebogen (https://www.soscisurvey.de/resistkrebs/?act=HGINUr6680uuxnv6vU5Owz21) nochmal anschauen?
Ich habe nun drei Fragen miteinander kombiniert (question('L232','combine=L206','combine=L261');)
Hier der Quellcode:
<script type="text/javascript">
<!--
var optionA = document.getElementById("L261_01a");  
var optionB = document.getElementById("L261_02a");
var frage1 = document.getElementById("L288_qst");  

function toogle1() {
  if ((optionA.checked)) {
      frage1.style.display = "";
  } else {
    frage1.style.display = "none";
  }
}
 
SoSciTools.attachEvent(optionA, "click", toogle1);
SoSciTools.attachEvent(optionB, "click", toogle1);


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


Lieben Dank!
by SoSci Survey (306k points)
Eigentlich war die Überlegung, dass "keine Angabe" als Ausweichoption für die Frage L206 bestehe bleibt und nur das "weitere Altersangabe" als Mehrfach(!)auswahl als zusätzliche Spalte hinzu-kombiniert wird. Oder habe ich die Bedeutung der möglichen Antwortoptionen in Ihrer Frage vollkommen falsch verstanden?
by s086064 (180 points)
Lieben Dank für Ihre Rückmeldung.
Nein Sie haben mich richtig verstanden. Jetzt habe ich bei der Frage 206 die Auswahloption "keine Angabe" ergänzt und eine weitere Mehrfachauswahl mit "weitere Altersangabe" ergänzt. Jedoch sieht man das "weitere Altersangabe" nicht. Woran könnte das liegen?

Leider funktioniert die Programmierung auch nicht. Die folgende Fehlermeldung wird mir angezeigt:
SCRIPT5022: SCRIPT5022: No element specified for SoSciTools.attachEvent()

hier ausführlich:
SoSciTools.attachEvent=function(a,b,c){if(!a)throw Error("No element specified for SoSciTools.attachEvent()");if(a instanceof Array||"undefined"!==typeof NodeList&&a instanceof NodeList||"undefined"!==typeof HTMLCollection&&a instanceof HTMLCollection)for(var d=0;d<a.length;d++)SoSciTools.attachEvent(a[d],b,c);else if(b instanceof Array)for(d=0;d<b.length;d++)a.addEventListener?a.addEventListener(b[d],c,!1):a.attachEvent?a.attachEvent("on"+b[d],c):a["on"+b[d]]=c;else a.addEventListener?a.addEventListener(b,
c,!1):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}

Hier der Link zum Fragebogen:
https://www.soscisurvey.de/resistkrebs/?act=wzzwrTiG5z9tRPxMHpylqCQm

Ich weiß wirklich nicht mehr weiter und sollte demnächst mit der Umfrage starten. Können Sie mir sagen, was ich falsch mache?
by SoSci Survey (306k points)
Wie Sie den Text "Weitere Altersangabe" über dem Auswahlfeld ergänzen, lesen Sie hier: https://www.soscisurvey.de/help/doku.php/de:create:combine#kombination_mehrerer_fragen

> Leider funktioniert die Programmierung auch nicht.

Durch das neue Frage-Format hat sich auch die HTML-Kennung geändert. Auch haben Sie keine zwei Optionen optionA und optionB, sondern nur eine (nämlich das Feld zum Ankreuzen):

var optionA = document.getElementById("L261_01");  
var frage1 = document.getElementById("L288_qst");  

> demnächst mit der Umfrage starten

Nun ... seit unserer letzten Antwort sind 5 Tage vergangen bis Sie wieder gefragt haben.
by s086064 (180 points)
Lieben Dank für die Hilfe! Das klappt so (zumindest auf Seite 19!)

Lieben Dank für den Hinweis. Es stimmt, dass ich einige Zeit nicht mehr geschrieben hatte, wie es manchmal so ist, gibt es viele To Dos gleichzeitig in wenig Zeit. Ich wollte Sie damit auch nicht unter Druck setzen, da kam meine Verzweiflung durch. Ich hoffe, es kam nicht anders an.

Hier ist der Link ab Seite 18:
https://www.soscisurvey.de/resistkrebs/?act=Hbchs8eMpBCxee1We9rtGS1b

Auf Seite 19 funktioniert die Programmierung. Komischerweise müssen alle drei potentielle Altersangaben ausgefüllt werden (obwohl es sich nicht um ein Pflichtfeld handelt. Woran kann das liegen?
Dieselbe Programmierung auf S.20 und S.21 funktioniert wieder nicht. Wie kann das sein? Was mache ich falsch?
Lieben Dank für die Unterstützung!
by SoSci Survey (306k points)
> Komischerweise müssen alle drei potentielle Altersangaben ausgefüllt werden

Ich bin ziemlich sicher, dass da irgendwo eine Frage oder (!) ein Item als Pflichtfrage/-item konfiguriert ist. Bitte prüfen Sie das nochmal im Fragenkatalog.

> Dieselbe Programmierung auf S.20 und S.21 funktioniert wieder nicht. Wie kann das sein?

Beim zweiten Item hat das Eingabefeld für die Mehrfachauswahl nicht die Kennung L262_01, sondern L262_02.

var optionA = document.getElementById("L262_02");

Für wie viele Items möchten Sie das Spiel denn haben? Wenn es mehr als nur die ersten drei sind, dann sollten sie das NICHT über 20 angepasste JavaScript-Codes machen, sondern über ein loopPage(), welches die Seite jeweils mit angepassten Änderungen anzeigt (das besprechen wir dann aber in einer neuen Frage hier im Support).
by s086064 (180 points)
Lieben Dank! Klappt nun alles :)

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

...