0 votes
in SoSci Survey (dt.) by s067656 (155 points)

Sorry, falls ich nochmal etwas zu banales fragen sollte, aber ich komme nach ein einigen Stunden einfach nicht auf den von mir gemachten Fehler.
Die Tipps habe ich alle umgesetzt. Vielen Dank.
Es funktioniert soweit außer das beim Drücken der Taste für Option == 2 nicht der Text erscheint, der erscheinen sollte. Beim Drücken der Taste für Option == 1 wird jedoch der gewünschte Text angezeigt.
Was könnte ich konkret machen? Ich habe schon vieles nachgelesen und versucht.

Die Textbausteine habe ich, wie folgt als php Tag unter die Frage gesetzt:

html('<div id="Text01">');
text('Feedback_untenHin');
html('</div>');

html('<div id="Text02">');
text('Feedback_untenWeg');
html('</div>');

Darunter im html Tag den folgenden Code:

<script type="text/javascript">
<!--

document.getElementById("Text01").style.display = "none";
document.getElementById("Text02").style.display = "none";

// Filterfunktion
function selFilter(item, option) {
  // Der erste Filter reagiert, wenn bei Stimulus 1 die Option nach oben (1) ausgewählt wurde
  if ((item == 1) && (option == 1))
    // und zeigt an
{document.getElementById("Text01").style.display = "";}
    
 // Reagiert, wenn bei Stimulus 1 die Option nach unten ausgewählt wird
  if ((item == 1) && (option == 2))
    // und zeigt an
{document.getElementById("Text02").style.display = "";}   
 
  }

 
// Die Zuordnungsaufgabe wird erst aktiviert, wenn die Seite vollständig geladen ist.
// Daher muss man attachEvent() verwenden, um die Callback-Funktion erst nach Abschluss
// des Ladevorgangs zuzuweisen.
//
// Wichtig: Statt assignmentAB01 muss hier "assignment" plus die Kennung der Frage verwendet werden
 
SoSciTools.attachEvent(window, "load", function() {
    assignmentBE12.setCallbackSelect(selFilter);
});
 
// -->
</script>

Vielen Dank im voraus.
Herzliche Grüße

related to an answer for: Zuordnungsaufgaben
by SoSci Survey (304k points)
Das sieht doch schon ganz gut aus :)

Was sagt denn die Fehlerkonsole im Browser? Hätten Sie vielleicht einen Pretest-Link direkt (!) zur betroffenen Seite? Dann werfe ich gerne einen Blick darauf.

Wenn der Fehler nicht unmittelbar ersichtlich ist, ergänzen Sie in der Funktion selFilter() zu Beginn noch folgende Zeile:

console.log(item, option)

Dann sehen Sie in der Fehlerkonsole, mit welchen Werten die Funktion umgehen soll.
by s067656 (155 points)
Danke!

https://www.soscisurvey.de/test142300/?act=0MMpodYT0LKCv2eToSV61nY6

Die Fehlerkonsole hat mir keine Fehler angezeigt.
Wie am Pretest-Link zu sehen erscheint jetzt plötzlich auch vor dem Drücken einer Taste schon ein Text. Geplant wäre einfach, dass das Bild (im Pretest ein einfaches Logo) erscheint und dann nach drücken der Cursor-Tasten (oben bzw. unten)  (nennen wir eine mal Option == 1) ein dazugehöriger Text erscheint und beim Drücken der anderen Taste (Option == 2) ein anderer Text. Herzliche Grüße
by SoSci Survey (304k points)
In Firefox zeigt die Fehlerkonsole folgendes:

SyntaxError: expected expression, got '<'

... und verweist auf folgende Code-Zeilen;

// -->
</script<table class="layout submitButtons fullwidth" id="buttonsAuto">
<colgroup><col style="width: 50%"><col style="width: 50%"></colgroup>

Hier fehlt die schließende spitze Klammer nach dem </script - womöglich ist bereits das die Ursache des Problems. Wenn nicht, bitte korrigieren, dann schauen wir weiter :)
by s067656 (155 points)
Aja, das habe ich vergessen. Sorry. Es funktioniert jetzt wieder für Option ==1 das der dazugehörige Text erscheint aber beim Drücken der Taste für Option == 2 erscheint leider kein Text.
by SoSci Survey (304k points)
Auf welche Tasten reagiert die Frage denn? Und können Sie das console.log() bitte noch in den Code einfügen, damit ich sehe, was funktioniert und was nicht? Danke.
by s067656 (155 points)
Tasten:



Ich hoffe das ist richtig so:

function selFilter(item, option) {
 console.log(item, option)
  // Der erste Filter reagiert, wenn bei Stimulus 1 die Option nach oben (1) ausgewählt wurde
  if ((item == 1 ...
by s067656 (155 points)
Eigentlich funktioniert es. Es ist nur so das bei dem php-Eingabe-Feld je nach dem was oben steht bei Tastendruck auch als Feedback ausgegeben wird d.h. Wenn ich oben ...Text01... stehen habe dann wird das auch bei Tastendruck angezeigt und …Text02... bei der anderen Taste nicht. Wenn ich aber …Text02... oben stehen habe dann wird das bei der jeweiligen zugehörigen Taste angezeigt und die andere Taste zeigt nichts an. Wäre es möglich die beiden Textbausteine gleichwertig anzugeben also so das keiner von beiden Vorrang hätte weil einer weiter oben steht?

html('<div id="Text01">');
text('Feedback_untenHin');
html('</div>');

html('<div id="Text02">');
text('Feedback_untenWeg');
html('</div>');

1 Answer

0 votes
by SoSci Survey (304k points)

Danke für die zusätzlichen Informationen.

Das Problem ist, dass der HTML-Code Ihrer Textbausteine nicht valide ist. Sie öffnen ein <div> mehr als Sie schließen. Daher wird Text02 Bestandteil von Text01 - und die anderen von Ihnen beschriebenen Effekte rühren auch daher.

<div id="Text01">
  <!-- begin text(Feedback_untenHin) -->
  <!-- Überschrift für die Abbildung -->
  <div class="title" style="text-align: center">hin bewegt</div>
 
  <div style="position: relative">
    <!-- Die Skala liegt im Hintergrund -->
    <div style="margin: 0 auto; width: 600px; height: 490px; background-image:url('#')">

    <!-- end text(Feedback_untenHin) -->
  </div>

Zu dem <div style="position: relative"> fehlt einfach nur ein </div> am Ende. Schön zu sehen im Firefox Inspektor:

by s067656 (155 points)
Vielen vielen Dank! Ich habe alles ausgebessert. Jetzt läuft es.
Danke für den tollen Support hier bei sosci Survey! Super! Schönen Tag noch und herzliche Grüße :)

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

...