0 votes
in SoSci Survey (dt.) by s036189 (140 points)
edited by s036189

Sehr geehrter Sosci Support,

Ich habe innerhalb eines Fragebogens einige Lerneinheiten (Seiten) erstellt, auf denen der Proband mittels Buttons hin und herspringen kann, so oft er will. Wenn alle Lerneinheiten mindestens einmal angeschaut wurden, erscheint auf der Übersichtsseite ein Button zum Abschluss des Lernens, das funktioniert über Counter soweit einwandfrei. :-)

    html(
      '<div style="text-align: center; margin: 2em 0">'.
      buttonToPage('Uber', 'Zur Übersicht').
      ' '.
      buttonToPage('L1', 'Lerneinheit 1').
      ' '.
      buttonToPage('L2', 'Lerneinheit 2').
      ' '.
      buttonToPage('L3', 'Lerneinheit 3').
      ' '.
      buttonToPage('L4', 'Lerneinheit 4').
      ' '.
      buttonToPage('L5', 'Lerneinheit 5').
      ' '.
      buttonToPage('L6', 'Lerneinheit 6').
      '</div>'
    );

option('progress', 'no');
option('nextbutton', false);
$currentcountL1 = value('IV01_01');  // Zuweisen der Datensatz Variable IV01 (CounterL1) zur Variable $currentcountL1
$currentcountL1 = (int)$currentcountL1;   // Sicherstellen, dass es eine Zahl ist
$newcountL1 = $currentcountL1 + 1;  // Zahl um 1 erhöhen
put('IV01_01', $newcountL1); //Neuen Wert abspeichern

Nun möchte ich zusätzlich gerne wissen, wie lange der Nutzer (in Summe) auf jeder Seite verweilt hat.

In der Hilfe und im Forum finde ich verschiedene Ansätze, die jedoch alle auf einen Timer/Countdown hinauslaufen.

Aufgrund der Foren- & Hilfeseiten, die ich mir bisher durchgelesen habe, ist mein Gedanke zur Umsetzung nun:

$totaltime = value('IV11_01');  // Zuweisen der Datensatz Variable IV11 (LernzeitL1) zur Variable $totaltime
$timeenter = time(); // Die momentane Zeit beim betreten der Seite speichern

//Beim Klick auf einen der Buttons Verweilzeit berechnen, aufaddieren und abspeichern
$timeleave = time(); // Die Zeit beim Verlassen der Seite ermitteln (klick auf Button zu einer anderen Lerneinheit)
$totaltime = $totaltime + $timeleave - $timeenter; //Verweildauer berechnen und zur bisherigen Zeit addieren
put('IV11_01', $totaltime); //Neue Zeit abspeichern

Meine Frage ist nun: wie kann ich den unteren Teil des Codes (sofern er denn richtig ist?) beim Klick auf einen der Buttons auslösen?

Vielen Dank vorab und viele Grüße
Axel Teichmann

1 Answer

0 votes
by SoSci Survey (322k points)

Die vermutlich einfachste Lösung wäre, dass Sie die Variablen TIME001 u.s.w. verwenden. Dort steht jeweils die kumulierte Verweildauer pro Seite.

by s036189 (140 points)
Warum einfach wenn es auch schwer geht :D Ihr Vorschlag ist natürlich ein guter Punkt, an die Time Variablen hatte ich gar nicht gedacht. Ich werde damit heute ausgiebig testen.

Herzlichen Dank für Ihren Hinweis, manchmal ist man einfach blind. :-)

Sofern es Ihre Zeit erlaubt fände ich trotzdem noch interessant zu wissen, ob es möglich ist, per Button Klick PHP Code auszuführen.

Ich verbleibe mit freundlichen Grüßen und wünsche Ihnen einen angenehmen Wochenabschluss.

Axel Teichmann
by SoSci Survey (322k points)
Die buttonToPage()-Funktion ist dafür nur mäßig geeignet, weil es danach ja direkt zu einer anderen Seite geht. Aber man kann beim Laden einer Seite und beim Verlassen (onsubmit) JavaScript-Code ausführen. Siehe auch attachCheck() unter https://www.soscisurvey.de/help/doku.php/de:create:soscitools

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

...