0 votes
in SoSci Survey (dt.) by s089781 (300 points)

Ich will eine Texteingabe mit einem Timer koppeln und wäre hier mal konservativ davon ausgegangen, dass die Texteingaben bei Offenen Fragen erst gespeichert werden, wenn man sie "bestätigt", indem man aktiv zur nächsten Seite geht. Ist das der Fall, oder werden Textbeiträge in ihrem Zustand gespeichert der bei erreichen des Timer-Endes vorliegt (Halte ich, wenn man an den PHP-Code denkt eignentlich sogar für wahrscheinlicher)?

Vielen Dank für die Auskunft!

by SoSci Survey (305k points)
Was macht ihr Timer denn genau? Wenn er nach Ablauf einfach nur SoSciTools.submitPage() aufruft, dann wäre "Timer abgelaufen" und "Zur nächsten Seite" m.E. dasselbe.

Prinzipiell können Sie natürlich mit dem Timer alles möglich machen. Zum Beispiel auch Änderungen in einem Textfeld verbieten, wenn der Timer abgelaufen ist.
by s089781 (300 points)
Ok, dann habe ich mit submitPage() ja aktuell schon eine praktikable Lösung. Änderungen in einem Textfeld zu verbieten wäre vermutlich aber noch besser. Ich konnte jetzt auf die Schnelle nicht den zugehörigen Befehl finden; können Sie mir da auf die Sprünge helfen?

1 Answer

0 votes
by SoSci Survey (305k points)

Änderungen in einem Textfeld zu verbieten wäre vermutlich aber noch besser

Das könnte so aussehen:

function onTimer() {
  document.getElementById("TX01_01").setAttribute("readonly", true);
  document.getElementById("TX01_01").setAttribute("disabled", true);
}

Das lässt sich von einem versierten Nutzer natürlich umgehen (was man durch eine Kopie des Inhalts in eine interne Variable zumindest nochmal erschweren könnte), aber wir sprechen hier ja von Datenerhebung, nicht von der Gestaltung eines IT-sicheren Systems.

by s089781 (300 points)
Das ist genau die Funktion, die ich mir erhofft hatte. Vielen Dank schonmal!

Ein kleines Problem ist dadurch jetzt noch entstanden und iich konnte noch nicht komplett nachvollziehen wie. Wenn der Timer abläuft und ich dann per Button auf die nächste Seite kommen will, kommt folgende Fehlermeldung:
"There is no page in the questionnaire with the following ID: naechsteseite. The command goto() has therefore not been executed."
Ich konnte noch nicht nachvollziehen, wieso die Betätigung des Buttons gerade durch das Ablaufen des Timers beeinträchtigt wird, bzw. wieso die einheitliche "naechsteseite"-Benennung nicht mehr greift.
by SoSci Survey (305k points)
Wo kommt denn die Kennung "naechsteseite" her? Ich vermute, Sie haben diese Kennung irgendwo in Ihrem PHP-Code verwendet?
by s089781 (300 points)
Eigentlich nicht, deshalb dachte ich es ist vielleicht eine Standardeinstellung innerhalb von SoSci.

Ich denke aber, dass ich mit der automatischen Submission forfahren werde. Vielen Dank für Ihre Hilfe
by SoSci Survey (305k points)
Die Fehlermeldung ist im Englischen falsch (wird korrigiert). Die wird von goToPage() verursacht. Die Chancen stehen gut, dass die Debug-Information genaueres darüber verrät, auf welcher Seite das fragliche goToPage() im PHP-Code steht. Eventuell ist es auch in einer Funktion aus dem Karteireiter "PHP-Funktionen" versteckt.

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

...