Themen-Optionen Ansicht
Alt 10.06.2014, 17:56   #1
JensL
Administrator
Site Admin
 
Registriert seit: 02.03.2010
Beiträge: 2.470
JensL befindet sich auf einem aufstrebenden Ast
Nach Ablauf einer gewissen Zeit eine Aktion auslösen
Primär relevant war diese Umsetzung bisher in der Variante, dass die Bearbeitungszeit eines gewissen Abschnitts des Fragebogens zeitlich begrenzt werden soll, prinzipiell könnte man die gleiche Funktion aber auch für andere Zwecke einsetzen, bei denen Zeitmessung relevant ist.

Vorneweg gilt es zwei Dinge festzuhalten:

1. Wenn es nur um den Absendezeitpunkt, oder die Zugriffszeiten geht, so bietet der Export mit den Variablen wie den rts_Variablen, date_of_last_access etc. hinreichende Informationen und man kann sich unnötige Arbeitsschritte sparen. Näheres hierzu findet Ihr im Handbuch unter "14.8.1 Übersicht über die Variablen"

2. Die Interaktion im Verhältnis zu den errechneten Zeitwerten wird (größtenteils) nicht in Echtzeit erfolgen, sondern erst beim Absenden einer Seite. Für eine Echtzeit-Reaktion (bspw. nach genau 2 Minuten soll ein Popup Fenster geöffnet werden) müsste man JavaScript einsetzen. Da es sich dabei aber um eine eigenständige, umfangreiche Programmiersprache handelt, können wir dafür leider keinen Support leisten.

Nun zu den Umsetzungsmöglichkeiten:

A) Der Zeitrahmen erstreckt sich über mehrere Seiten:

Hierfür lässt sich der aktuelle Unix-Zeitstempel ( de.wikipedia.org/wiki/Unixzeit ) in einer Variable speichern. Dazu müsst Ihr folgende Schritte unternehmen:

1. zwei benutzerdefinierte Variablen anlegen
2. einen Rekodierungstrigger am Anfang des zu messenden Abschnitts anlegen der die erste der beiden zuvor angelegten Variablen mit dem Wert UNIX_TIMESTAMP() beschreibt

Das weitere Vorgehen sieht dann so aus, dass man auf jeder Seite erneut UNIX_TIMESTAMP() in die zweite angelegte Variable rekodiert und dann die erste Variable von der zweiten subtrahiert, um mit der daraus resultierenden Differenz in Sekunden weiter zu arbeiten.

Dies kann direkt in der Bedingung eines Triggers geschehen
(#c_000y# - #c_000x#) > X
oder in einem Rekodierungstrigger, der die Differenz in eine dritte Variable schreibt.

So kann man dann bspw. einen Pagetrigger verwenden, um nach Überschreiten der vorgesehenen Zeit aus dem entsprechenden Bereich des Fragebogens zu leiten.

B) Der Zeitrahmen bezieht sich auf die Bearbeitung einer einzelnen Seite:

Die einfache Variante wäre, in den Seiteneigenschaften der betroffenen Seite einzustellen, dass die Seite automatisch nach X Sekunden abgesendet wird.

Manchmal reichen allerdings die angebotenen Zeitvorgaben nicht aus, dann kann man sich behelfen, indem man auf der Seite folgenden JavaScript-Code eingibt
Code:
<script type="text/javascript"> setInterval(function(){ document.getElementById('os').click(); }, 5000); </script>
5000 gibt in dem Beispiel die Sekundenanzahl an.

Bitte beachtet was ich weiter oben zu JavaScript geschrieben habe. U.u. kann es, damit man dies einfügen kann außerdem notwendig sein, den Rich-Text-Editor zu aktivieren. Die entsprechende Option findet Ihr unter Optionen -> Persönliche Einstellungen -> Verhalten des Fragebogen-Editors.
JensL ist offline  
 


Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.

unipark
© Copyright 2011 QuestBack GmbH - Unipark Forum Onlineforschung | Unipark Online-Umfrage Tool | kontakt | impressum |