0 votes
in SoSci Survey (dt.) by s044369 (210 points)

Guten Tag,

ich mische mehrere Fragen, die jeweils aus einem Bild im Fragetext und mehreren Antwortskalen bestehen. Für jede Frage wird erst für 2 Sekunden nur das Bild gezeigt, dann das Bild ausgeblendet, und dann nur die Antwortskalen angezeigt.

Wenn ich jetzt bei diesen Fragen "nachhaken" einstelle, wird die gesamte Frage nochmal angezeigt, nämlich das Bild für 2s und danach die Antwortskala. Kann ich das "nachhaken" so einstellen, dass nur die Antwortskalen nochmal angezeigt werden, aber nicht das Bild?

Vielen Dank und viele Grüße!

1 Answer

0 votes
by SoSci Survey (327k points)

Es klingt so, dass Sie mittels JavaScript die Anzeige der Frage (und des Bildes) angepasst haben. Die entsprechende Anpassung für die Wiederholung müssten Sie demnach auch in Ihrem JavaScript vornehmen.

Wahrscheinlich ist es dafür sinnvoll, dass Sie die Information, ob die Seite wiederholt wurde, vom PHP-Code an das JavaScript übergeben. Das könnte mittels Platzhalter z.B. so aussehen:

show('JS01', [
    '%route%' => json_encode(getRoute())
]);

Wenn JS01 Ihr Textbaustein mit JavaScript ist, können Sie im JavaScript nun mittels

var route = %route%;

herausfinden, ob die Seite mittels "Weiter" (next) erreicht wurde oder ob sie wiederholt wurde (repeat).

by s044369 (210 points)
Okay, ich glaube, dafür müsste ich dann doch javascript verstehen und nicht nur zusammenkopieren... wenn ich nett frage, ergänzen Sie vielleicht meinen Code?

Das ist er jedenfalls:

<div id="Itemfrage"> // Das ist die Instruktion für die Items, die ich aus dem Fragetext herausgenommen habe, damit sie nicht mit dem Bild angezeigt wird
<p><b>To what extent does the person you just saw
experience the following emotions?</b></p>
</div>



question('IH38');  // Das hier ist die Zufallsgeneratorfrage, die die eigentlichen Fragen enthält
$fragen = valueList('IH38', NULL, 'label');
 
$kennung = loopPage($fragen);

debug($fragen);
debug($kennung);

registerVariable($kennung);

question($kennung);
pageCSS("#$kennung" . "_tab { display: none; }");
pageCSS('
    #Itemfrage {
        display: none;
    }
');

replace('%fragekennung%', $kennung);



<script type="text/javascript"> //hier wird das Bild aus- und Items samt Instruktion und Weiterknopf eingeblendet
// <!--


// Funktion zum Einblenden der Frage
function showContent() {
  document.getElementById("%fragekennung%_title").style.display="none";
  document.getElementById("Itemfrage").style.display="block";
document.getElementById("%fragekennung%_tab").style.display="block";
 }

// Nach dem Laden der Fragebogen-Seite das Script starten
SoSciTools.attachEvent(window, "load",
  function() {
    // Objekt heraussuchen
    document.getElementById("%fragekennung%_title").style.display = "block";
  document.getElementById("Itemfrage").style.display="none";
    document.getElementById("%fragekennung%_tab").style.display = "none";
    // Den Timer starten
    window.setTimeout(showContent, 2000); // Nach 6 Sek = 2.000 ms
  }
);

// -->
</script>


<script type="text/javascript">
<!--
// Knopf zunächst ausblenden
SoSciTools.submitButtonsHide();
// Nach Ablauf von 2 Sek = 2000 ms wieder einblenden
window.setTimeout(
  SoSciTools.submitButtonsDisplay, 2000
)
// -->
</script>

Vielen Dank schonmal!
by SoSci Survey (327k points)
Okay, erstmal die Variable für die Routing-Info (siehen oben)...

var route = %route%;

Da steht nun "next" oder "repeat" drin. Und wenn nicht "next" drin steht, dann soll showContent() gleich nach dem Laden ausgelöst werden, also passen wir das hier an:

// Den Timer starten
window.setTimeout(showContent, 2000); // Nach 6 Sek = 2.000 ms

Und zwar wie folgt:

// Den Timer starten (oder nicht)
var route = %route%;
if (route == "next") {
    window.setTimeout(showContent, 2000); // Nach 6 Sek = 2.000 ms
} else {
    showContent();  // Im Wiederholungsfall direkt aufrufen
}

Ohne Garantie, wenn es nicht funktioniert, dann ergänzen Sie unter dem route noch wie folgt:

var route = %route%;
alert(route);

Dann sehen Sie, was da übergeben wird.

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

...