0 votes
in SoSci Survey (dt.) by s094304 (120 points)
closed by SoSci Survey

Nach dem Einrichten des Timers funktioniert fast alles wie gewünscht. Allerdings wird auf der ersten Seite immer wieder die Fehlermeldung angezeigt.

Warnung (Seite 12)
Für den Platzhalter %timeLeft% wurde weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() festgelegt.

Wie kann ich diesen Fehler beheben?

Ich habe den Timer wie in Anleitung mit html und php Feldern integriert. Wie in der Anleitung beschrieben. Ich habe auch die Variable mit html Code angelegt und den Code aus dem Link hineincopiert.
https://www.soscisurvey.de/help/doku.php/de:create:timer-submit?s[]=timer
Auf Seite 1 auf der der Timer starten soll folgenden PHP Code eingefügt:

// Ablauf der Zeit als Variable $timeout speichern
if (!isset($timeout)) {
  $timeout = strtotime('+10 seconds');
  registerVariable($timeout);
}
// Filter: Zeit abgelaufen?
if (time() > $timeout) {
//zurückbutton ausblenden
option('backbutton', false);
//gehe zu Seite...
  goToPage('MatrixEn');                   
}
// JavaScript zur Anzeige der verbleibenden Zeit
$timeLeft = $timeout - time();
// Statt JS01 muss hier die Kennung des Textes eingetragen werden
show('MA10', array(
  '%timeLeft%' => $timeLeft
));

Auf jeder folgenden Seite den PHP Code:

// Filter: Zeit abgelaufen?
if (time() > $timeout) {
//zurückbutton ausblenden
option('backbutton', false);
//gehe zu Seite...
  goToPage('MatrixEn');                   
}
// JavaScript zur Anzeige der verbleibenden Zeit
$timeLeft = $timeout - time();
// Statt JS01 muss hier die Kennung des Textes eingetragen werden
show('MA10', array(
  '%timeLeft%' => $timeLeft
));
closed with the note: Die Ursache konnte nicht geklärt werden (evtl. ein falsche Inhalt im Fragebogen-Cache), aber das Problem scheint im Moment gelöst.
by SoSci Survey (303k points)
Könnten Sie bitte noch die Debug-Information von Seite 12 ergänzen? Danke.
https://www.soscisurvey.de/help/doku.php/de:create:debugging
by s094304 (120 points)
Der von mir verwendete html Code in der Zählervariablen:
<!-- HTML-Element zur Anzeige der Zeit -->
<div id="timeDisplay" style="font-size: 200%; margin: 16px 0; text-align: center">&ndash;</div>
 
<script type="text/javascript">
<!--
 
// Verbleibende Zeit initialisieren
var timeLeft = %timeLeft%;
var timeStart = new Date();
 
// 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);
    // Eine Meldung anzeigen (optional)
    alert("Die Zeit ist vorbei.");
    // Den Teilnehmer zur nächsten Seite weiterleiten (optional)
    SoSciTools.submitPage();
  }
 
  // Zeit anzeigen
  var display = document.getElementById("timeDisplay");
  if (!display) {
    return;
  }
  while (display.lastChild) {
    display.removeChild(display.lastChild);
  }
  var minutes = Math.floor(remain / 60);
  var seconds = String(remain - 60 * minutes);
  if (seconds.length < 2) {
    seconds = "0" + seconds;
  }
  var displayText = String(minutes) + ":" + seconds;
  var displayNode = document.createTextNode(displayText);
  display.appendChild(displayNode);
}
 
// Initialisierung
var timerInterval = window.setInterval(updateCountdown, 250);
updateCountdown();
 
// -->
</script>
by SoSci Survey (303k points)
Und ... die Debug-Information wäre noch hilfreich (s. Link oben)?
by s094304 (120 points)
Ich habe das Problem durch viel ausprobieren gefunden. Ich habe die Timervariable mit html Code angelegt und diese auf die erste Seite meiner Aufgaben gezogen. Nachdem ich diese wieder von der ersten Seite der Aufgaben entfernt habe, ist die Fehlermeldung nicht mehr aufgetaucht.
Der Timer funktioniert jetzt so wie gedacht.

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

...