0 votes
in SoSci Survey (dt.) by s098078 (125 points)

Personen sollen ein Spiel spielen und zwar mindestens zwei Minuten. Danach soll der Weiter-Button erscheinen. Dabei soll dieser immer nach zwei Minuten erscheinen, egal, ob die Seite neu geladen worden ist oder nicht. (Beim Verlieren lädt sich die Seite neu).

1 Answer

0 votes
by s109993 (10.3k points)

Hi, das wird ganz gut hier beschrieben: https://www.soscisurvey.de/help/doku.php/de:create:timer-display

Viele Grüße

by s098078 (125 points)
Hi, danke. Jedoch beginnt der Timer dann bei jedem Neuladen von vorne. Das möchte ich vermeiden. Der Timer soll ab dem ersten Laden der Seite laufen.
viele Grüße
by s109993 (10.3k points)
Da die Einschränkung explizit erwähnt wird, weiß ich nicht, ob das möglich ist. Ggf. durch abspeichern der Zeit in einem Cookie. Vielleicht weiß der Admin mehr dazu. Von einer methodischen Seite können Sie sich einmal überlegen, ob das überhaupt notwendig ist. Die meisten Teilnehmer wollen ja eher schnell fertig werden, und nicht den Timer neu starten (und dazu muss man ja auch erstmal darauf kommen. Außerdem kann man am Ende in den Metadaten sehen, wer mehr als zwei Minuten pro Seite gebraucht hat (@Admin, das sollte doch auch bei einem refresh der Seite weiterlaufen, oder?)
by SoSci Survey (305k points)
Sie brauchen ein isset(), ein registerVariable() und einen Platzhalter. Das Zusammenspiel wird hier beschrieben: https://www.soscisurvey.de/help/doku.php/de:create:timer-countdown
by s098078 (125 points)
ich verstehe nicht wie ich die Verknüpfung machen soll
by SoSci Survey (305k points)
Bitte folgen Sie der Anleitung schrittweise und testen Sie, ob das funktioniert. Am Ende müssen wir nur das SoSciTools.submitPage() durch einen Funktion ersetzen, welche den Weiter-Knopf anzeigt.
by s098078 (125 points)
So sieht mein Code bisher aus, jedoch klappt es nicht. Der Weiter-Button wird nicht angezeigt. Vielleicht können Sie mir noch einmal weiterhelfen.

hmtl-code
<script type="text/javascript">
<!--
// Knopf zunächst ausblenden
SoSciTools.submitButtonsHide();
// -->
</script>

php-code
// Ablauf der Zeit als Variable $timeout speichern
if (!isset($timeout)) {
  $timeout = strtotime('+30 seconds');
  registerVariable($timeout);
}

php-code
// Filter: Zeit abgelaufen?
if (time() >= $timeout) {
    SoSciTools.submitButtonsDisplay;
}

Text als Html-code
 <script type="text/javascript">
<!--
 

// Funkton zur Aktualisierung der Anzeige und Prüfung der Zeit
function updateCountdown() {
  // Zeit berechnen
  var now = new Date();
  var timePage = Math.floor((now.getTime() - timeStart.getTime()) / 1000);  // Vergangene Zeit [Sek.]
  var remain = timeLeft - timePage;
 
  // Zeit abgelaufen?
  if (remain <= 0) {
    remain = 0;
    // Timer stoppen
    window.clearInterval(timerInterval);
    // Den Teilnehmer zur nächsten Seite weiterleiten (optional)
      SoSciTools.submitButtonsDisplay, 30000;
  }
 
 
// Initialisierung
var timerInterval = window.setInterval(updateCountdown, 250);
updateCountdown();
 
// -->
</script>

php-code
// JavaScript zur Anzeige der verbleibenden Zeit
$timeLeft = $timeout - time();
// Statt JS01 muss hier die Kennung des Textes eingetragen werden
show('C033', array(
  '%timeLeft%' => $timeLeft
));
by SoSci Survey (305k points)
> Vielleicht können Sie mir noch einmal weiterhelfen.

Am besten posten sie einen Pretest-Link direkt (!) zur betroffenen Seite im Fragebogen.

Was mir spotan auffällt ist, dass Sie in der vorletzten Zeile des JavaScript-Codes den Platzhalter %timeLeft% verwenden, diesen aber im PHP-Code scheinbar nicht definieren.
by s098078 (125 points)
Auf der Seite sieht man eigentlich nichts, ich habe das Spiel bisher noch nicht eingebaut. Das klappt jedoch problemlos. das wäre der Link zu der, bisher leeren, Seite.

https://sosci.uni-wuppertal.de/Forschungsvorhaben/?act=J6i2yftP8EM3kfo5lmJNwbX7
by SoSci Survey (305k points)
Die Fehlerkonsole im Browser moniert, dass zu der Funktion

function updateCountdown() {

die schließende geschweifte Klammer fehlt. Stimmt. Also vor dem

// Initialisierung

fehlt eine Zeile mit

}
by s098078 (125 points)
Danke, die Programmierung habe ich hinbekommen. Leider ist ein neues Problem aufgetreten bzgl. des Neuladens der Seite. In der Vorschau von meinem Spiel-Seite kann ich die Seite problemlos laden. Wenn ich jedoch die Vorschau meines kompletten Fragebogens anschaue bzw. ab einer Seite zuvor, kommt eine Fehlermeldung beim Neuladen der Seite (Um diese Seite anzuzeigen, müssen die von Firefox gesendeten Daten erneut gesendet werden, wodurch alle zuvor durchgeführten Aktionen wiederholt werden (wie eine Suche oder eine Bestellungsaufgabe)). Das ist neu.

Hier beide Vorschau-Links:
https://sosci.uni-wuppertal.de/Forschungsvorhaben/?act=yVaA3rtDRvRmrdobLgmaIO08 (nur Spiel)

https://sosci.uni-wuppertal.de/Forschungsvorhaben/?act=w5NcUQHR2ajTkjzgiCctZQun (eine Seite zuvor)

Kann man das Problem irgendwie lösen?
by SoSci Survey (305k points)
Sie können doch nicht am Nachmittag einfach ohne Triggerwarnung ein Tetris-Spiel posten! Da ist ja jeder Rest von Produktivität beim Teufel :)

Also, wenn ich auf der Seite vorher mit Firefox starte, dann spiele, dann die Seite neu lade, dann bekomme ich keine Fehlermeldung (nur die Frage des Browsers, ob die erneute Übermittlung der Daten in Ordnung geht) und das Spiel startet einfach von vorne. Das scheint mir das normale Verhalten zu sein.

Das Spiel speichert den Status vermutlich nirgends ab, insofern bleibt nichts anderes, als von vorne zu starten.
by s098078 (125 points)
Ups. Ist ja schon Abend :)

Danke. Ok, der Timer scheint trotzdem zu klappen. Das ist die Hauptsache.
by s109993 (10.3k points)
sehr cooles Tetris Spiel- ist das ein offizielles Spiel das Sie eingebunden haben oder ist das selbst programmiert?
by s098078 (125 points)
selbst programmiert, jedoch nicht von mir selbst. Danke :)

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

...