0 votes
in SoSci Survey (dt.) by s079684 (975 points)

Gibt es eine Möglichkeit, Daten auch ohne Interaktion der VP zu speichern?
Ich denke daran, dass eine Seite präsentiert wird, dort wird ein Zufallscode präsentiert und falls die VP die Seite direkt wieder schließt, soll dieser Zufallscode dennoch gespeichert sein.
Der Code wird als getrenntes Kontaktdatum gespeichert.

1 Answer

+1 vote
by SoSci Survey (307k points)
selected by s079684
 
Best answer

Hier fallen mir spontan 2 Lösungen ein:

  1. Sie können die Seite mittels JavaScript und SoSciTools.submitPage() direkt abschicken.

  2. Sie können bei einer Frage vom Typ "interne Variablen" in den Einstellungen für eine einzelne Variable festlegen, dass die Daten automatisch im Hintergrund übertragen werden. Kleiner Nachteil bei dieser Lösung: Wird die Seite zu schnell geschlossen, kommen keine Daten an.

by s179256 (140 points)
Hallo,

wir haben eine ähnliche Frage, beide vorgeschlagenen Lösungsansätze liefern bei uns bisher aber nicht das gewünscht Ergebnis.

Wir möchten, dass Teilnehmende auf einer Seite einen Symbol Digit Test (SDT) bearbeiten, der komplett mittels HTML-Code im Tabellenformat eingebunden ist. Die TN bekommen Symbole eingeblendet und darunter offene Textfelder, in denen sie die entsprechenden Ziffern den abgebildeten Symbolen zuordnen sollen.

Auf derselben Seite kommt es aber auch zu einem fingierten "Absturz", d.h. das Browserfenster schließt sich einfach. Wir würden aber dennoch gerne die Zuordnungen aus dem SDT speichern.

Bei Lösungsansatz 1 werden die TN ja direkt (in diesem Fall) auf die letzte Seite weitergeleitet.

Bei Lösungsansatz 2 wird nichts gespeichert.

Wir haben folgenden Code versucht:
+++++++++++++++++++++++++++++++++
$data1 = value('ST04_01');
put('IV01_01', $data1);
$data2 = value('ST05_01');
put('IV02_01', $data2);

usw.
+++++++++++++++++++++++++++++++++
und
+++++++++++++++++++++++++++++++++
$data = array(
  value('ST04_01'),
  value('ST05_01'),
  value('ST06_01'), //...
);
dbSet(caseSerial(), $data);
+++++++++++++++++++++++++++++++++

Finden wir nur einfach den Fehler nicht, oder gibt es noch eine weitere Möglichkeit der direkten Speicherung?

Vielen Dank im Voraus!
by SoSci Survey (307k points)
> Bei Lösungsansatz 2 wird nichts gespeichert.

Haben Sie für die interne Variable denn die Übermittlung von Daten im Hintergrund aktiviert? Und schreiben Sie Ihre Daten auch in das entsprechende Eingabefeld? Oben posten Sie ja nur PHP-Code, aber das Schreiben der Daten passiert ja im JavaScript.
by s179256 (140 points)
Wir haben bei den Einstellungen für das Item in der internen Variable "Daten im Hintergrund periodisch übermitteln" eingestellt, ist das mit "Übermittlung von Daten im Hintergrund aktiviert" gemeint?

Die Daten werden in das Eingabefeld 'ST04_01' (usw.) eingetragen. Der Abbruch geschieht nach 90 Sekunden.
by SoSci Survey (307k points)
Sie haben die Frage ST04 auch auf der Seite eingetragen und können in den Developer-Tools im Browser sehen, dass in den Eingabefelden auch Daten eingetragen werden? Wenn nicht, dann klappt etwas mit dem JavaScript nicht. Falls Sie das nicht finden, posten Sie gerne einen Pretest-Link direkt (!) zur betroffenen Seite.
by s179256 (140 points)
Ich finde zwar die Developer-Tools, werde daraus aber nicht wirklich schlau. Wenn wir den Abbruch nicht aktivieren und man auf die nächste Seite gelangt (oder auch bei einem Beispiel zur Veranschaulichung auf den Seiten davor), werden die Daten in den Eingabefeldern gespeichert, daher gehe ich nicht davon aus, das per se etwas am SDT-Code falsch ist (hoffentlich). Nur wenn wir den Abbruch programmieren oder einfach im Test die Seite schließen, wird nichts gespeichert.

Vielen, vielen Dank für das Angebot. Hier der Pretest-Link: https://s2survey.net/ARISE2/?act=uHb2JX5PHyMv8OoUG57bHjwV

Noch zwei Hinweise:
Das Programm für den Abbruch ist lokal auf unseren Test-PCs gespeichert und von dort ausgelöst, d.h. man muss die Seite in diesem Testfall selbstständig schließen.
Wir haben den obenstehenden Code erst einmal nur für die ersten drei Eingabefelder geschrieben (ST04_01, ST05_01 und ST07_01) und dafür drei interne Variablen angelegt (IV01_01, IV02_01, IV03_01).
by SoSci Survey (307k points)
Soweit ich sehe, haben Sie die Frage ST04 nicht (!) in die Seite gezogen, sondern lediglich mittels HTML entsprechende <input>-Eingabefelder erstellt. Oder ST04 ist keine interne Variable, sondern Sie haben mit Platzhaltern gearbeitet, um Texteingabefelder aus der Frage an der passenden Stelle einzubinden?

Wenn das der Fall ist (?), gehe ich davon aus, dass frei platzierte Eingabefelder die automatische Übermittlung noch nicht unterstützen - aber ich warte jetzt erstmal auf Ihre Antwort, ob es daran liegt.
by s179256 (140 points)
Genau, die Eingabefelder sind mit HTML Code und "input" eingebunden (und keine internen Variablen, sondern der Sorte "Texteingabe offen").

Das ist der (gekürzte) Tabellencode, mit dem die Felder im SDT eingebunden sind:

<table style="margin-bottom:0.5cm">
<tr>
  <td><img src="Symbol1_40.jpg"></td><td><img src="Symbol3_40.jpg"></td>
  <td><img src="Symbol4_40.jpg"></td><td><img src="Symbol2_40.jpg"></td>
//...
</tr><tr>
  <td>%input:ST04_01%</td>
  <td>%input:ST05_01%</td><td>%input:ST06_01%</td>
  <td>%input:ST07_01%</td>
//...
</tr></table>

Dabei fällt mir auf, dass aktuell also Felder 1, 2 und 4 gespeichert werden sollten (habe ST06_01 in dem HTML-Code übersehen).

Vor der Tabelle kommt noch ein HTML-Feld, dass den Weiterbutton nach 100 Sekunden wieder einblendet, sollte aus irgendeinem Grund der Abbruch nicht funktionieren.

Nach der Tabelle ist ein HTML-Code mit Java-Skript hinterlegt, der dafür sorgt, dass der Mauszeiger automatisch nach einer Eingabe weiterspringt.

Darunter kommt der PHP-Code für die Speicherung und darunter ein PHP-Code für den Fortschrittsbalken.
by SoSci Survey (307k points)
Alles klar, sehen wir uns an.
by s179256 (140 points)
Toll, vielen herzlichen Dank!
by SoSci Survey (307k points)
So, wir haben auf s2survey.net ein Update installiert, welches sich um die Hintegrundübertragung bei frei platzierten Eingabefeldern kümmert.

Allerdings ...

... Bei dem Eingabefeld zu ST04_01 scheinen Sie die automatische Übertragung im Hintergrund noch nicht aktiviert zu haben.

... warum in alles in der Welt haben Sie für jede Eingabe eine eigene Frage angelegt und nicht einfach alle Eingabefelder/Items in eine Frage gepackt? Das wäre sowohl technisch als auch von der Verwaltung her wesentlich effizienter.

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

...