0 votes
in SoSci Survey (dt.) by s094631 (110 points)
edited by SoSci Survey

Hallo,

ich will einen Fragebogen erstellen mit über 100 Fragen, wobei jede Frage eine eigene Seite hat und der Fragebogen soll ein Zeitlimit enthalten - so 30 Minuten.

Ich habe die Fragen erstellt und einen Pretest gemacht.

Leider sind einige Fehler aufgetreten. Ich habe keine Ahnung vom Programmieren. Können Sie mir bitte weiterhelfen?

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

// Prüfung, ob die Zeit schon abgelaufen ist 
$timer = 30; // Der Teilnehmer hat 30 Sekunden Zeit zur Bearbeitung
if (time() >= $time0 + §timer) {
 goToPage ('next');
}
// JavaScript zur Anzeige der verbleibenden Zeit
$timeLeft = §timeout - time ();
// JavaScript aus Textbausteine JavaScript_timer1 einbinden
replace('%timeLeft%', $timeLeft);
text('JavaScript_timer1);

Im PHP-Code trat ein Fehler auf.

Fehler im Fragebogen: syntax error, unexpected 'ok' (T_STRING), expecting ',' or ')'
Zeile: 17

PHP-Code

014 
015 replace('%timeLeft%', $timeLeft);
016 text('JavaScript_timer1);
017 return 'ok';

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

<script type="text/JavaScript"> 

<!-- 

// Funktion zur Weiterleitung 

function weiter() { 

// Eine Meldung anzeigen 

alert ("Die Zeit ist vorbei."); 

// Den Teilnehmer zur nächsten Seite weiterleiten 

SoSciTools.submitPage(); 

} 

// Countdown anzeigen 

var date0 = new Date (); 

var timeout = date0.getTime() + %remain% * 1000; 

function updateCountdown() { 

// Zeit berechnen 

var date = new Date (); 

var time = Math.ceil((timeout - date.getTime() - 50) / 1000); // Verbleibende Zeit in Sekunden 

// Zeit anzeigen 

var out = document.getElementById("remain"); 

if (!out) { 

   return; 

} 

while (out.lastChild) { 

out.removeChild (out.lastChild); 

} 

var minutes = Math.floor(time / 30); 

var seconds = String (time - 30 * minutes); 

if (seconds.length < 2) seconds = ":" + seconds; 

var displayNode = document.createTextNode(Display); 

out.appendChild(displayNode); 

} 

//Initialisierung der Weiterleitung 

SoSciTools.attachEvent(window, "load", function(evt) { 

// Timerfür automatische Weiterleitung starten 

window.setTimeout (weiter, %remain% * 1000); 

}); 

// --> 

</script> 

Danke im Voraus!

1 Answer

0 votes
by SoSci Survey (327k points)

Die Fehlermeldung

Fehler im Fragebogen: syntax error, unexpected 'ok' (T_STRING), expecting ',' or ')' Zeile: 17

Besagt einfach nur, dass in Zeile 16 ein Anführungszeichen am Ende fehlt:

text('JavaScript_timer1);  // Falsch
text('JavaScript_timer1');  // Richtig

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

...