0 votes
in SoSci Survey (dt.) by s077606 (130 points)

Hallo zusammen,

gerne würde ich einen Fragebogen erstellen, in welchem gleichzeitig (auf ausgewählten Seiten des Fragebogens) ein Versuch stattfinden soll. Der Versuch soll dabei folgendermaßen aussehen: In einer Excel Tabelle wurde eine Zahlenreihe (von 0-9) willkürlich erstellt (Jede Zahl zwischen 0 und 9 kommt dabei beliebig oft vor). Diese Zahlenreihe wurde in ein pdf-Format übertragen. Die Versuchsteilnehmer sollen nun alle 7 markieren (dies ist in einer normalen .pdf Datei möglich indem man das "Text hervorheben" Tool verwendet).
Frage1) Ist eine solche Einbindung in einen Fragebogen möglich? Bisher habe ich keine Lösung gefunden und konnte mir die pdf Datei nur anzeigen oder herunterladen lassen.
Frage2) Für die Markierung der 7er steht den Versuchsteilnehmern nur eine bestimmte Zeit zur Verfügung. Kann ich für diese Seite eine gewisse Sekundenanzahl einstellen, nach deren Ablauf automatisch auf die nächste Seite im Fragebogen gesprungen wird?

Für eine Antwort wäre ich sehr dankbar.

Viele Grüße

1 Answer

0 votes
by SoSci Survey (304k points)

Sie können ein PDF nur übermitteln (also Herunterladen oder im Browser anzeigen), bekommen die Markierungen aber nicht zurück. Dafür müssten die Teilnehmer das PDF herunterladen, bearbeiten und dann wieder hochladen - für letzteres gäbe es einen Fragetyp, aber das ist schon ziemlich kompliziert....

Vielleicht möchten Sie ja mal eine Frage vom Typ "grafische Positionierung" dafür ausprobieren? Allerdings können Sie dort nur die Markeirungen für bis zu 32 7er automatisch als "richtig" kodieren - wenn's mehr sind, müssen Sie mit den Koordinaten arbeiten.

Zur Zeitbegrenzung s. Timer: Automatisch weiter zur nächsten Seite

by s077606 (130 points)
Vielen Dank für Ihre hilfreiche Antwort.
Mir ist nun noch ein anderer Gedanke gekommen, wie das Problem gelöst werden kann, ohne pdf Datei.
Hierfür würde ich Sie bitten, mir folgende Fragen zu beantworten:
1) Wie viele Antwortmöglichkeiten kann ich pro Seite eines Fragebogens einfügen.
2) Wie kann ich die Schriftart und Größe der Antwort-Items ändern?

Mein Gedanke ist folgender: Anstatt ein pdf etc. zu übermitteln (da es umständlich ist, die Versuchsteilnehmer zu bitten, das pdf herunterzuladen etc.) könnte ich eine Zahlenreihe (diese muss hinreichend groß sein) als Antwortmöglichkeit erscheinen lassen, und per Mehrfachauswahl könnten die Teilnehmer somit die 7er "anklicken".

Für eine Antwort wäre ich sehr dankbar.

Nochmals bedanke ich mich für die bereits gegebene Antwort
by SoSci Survey (304k points)
Für diese Überlegung könnten Sie sich einmal die Darstellung "Kärtchen" bei der Mehrfachauswahl ansehen. Die Kärtchen selbst kann man im Fragebogen-Layout mittels CSS in der HTML-Vorlage formatieren.

Mittels CSS kann man auch die Größe von Itemtexten anpassen. Etwa durch ein `<div style="font-size: 8px">` als HTML-Code vor der Frage und ein `</div>` dahinter.
by s077606 (130 points)
Vielen Dank, die Darstellung "Kärtchen" spiegelt genau meine Idee wieder. Ich konnte diese auch mittels HTML formatieren. vielen Dank hierzu.

Bezüglich des Timers hätte ich noch eine Frage: bei einer Frage meines Fragebogens hat die Vorlage funktioniert. Ich habe die Vorlage in den PHP-Code übernommen und einen Textbaustein mit dem JAVA Skript zu "Countdown anzeigen" erstellt.
Möchte ich nun dieses auf eine andere Frage anwenden, funktioniert dies leider nicht mehr. Haben Sie hierfür eine Lösung? Leider kenne ich mit mit JAVA nicht aus und kann mir somit, trotz stundenlangen herumprobieren, nicht helfen.

Für Ihre Hilfe wäre ich ihnen wiederum sehr dankbar.

Mit freundlichen Grüßen
by SoSci Survey (304k points)
Vermutlich liegt es an einer Kombination von isset(), registerVariable() und der mehrfachen Verwendung desselben Variablennamens. Aber posten sie doch einfach Ihren verwendeten PHP-Code in eine neue Frage, dann kann ich mir das detaillierter ansehen.
by s077606 (130 points)
Nun tritt das Problem auf, dass ich auf Seite zwei einen Versuch habe bei dem ich folgenden PHP Code verwende

if (!isset($time0)) {
  $time0 = time();
  registerVariable('time0');  // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 90;  // Der Teilnehmer hat 1 Minute (60 Sekunden) Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
  goToPage('next');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $time0 + $timer - time();
replace('%remain%', $remain);

mein dazugehöriger HTML Code ist folgender:

<p>Verbleibende Zeit: <span id="remain"></span></p>

und für den Timer habe ich einen Textbaustein mit folgendem Inhalt angelegt:

<script type="text/javascript">
<!--
// Funktion zur Weiterleitung
function weiter() {
  // Eine Meldung anzeigen (optional)
  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 / 60);
  var seconds = String(time - 60 * minutes);
  if (seconds.length < 2) seconds = "0" + seconds;
  var display = String(minutes) + ":" + seconds;
  var displayNode = document.createTextNode(display);
  out.appendChild(displayNode);
}
// Initialisierung der Weiterleitung
SoSciTools.attachEvent(window, "load", function(evt) {
  // Weiter-Knopf ausblenden (optional)
  SoSciTools.submitButtonsHide();
  // Zusätzlicher Timer für die Aktualisierung des Countdowns
  window.setInterval(updateCountdown, 1000);
  updateCountdown();
  // Timer für automatische Weiterleitung starten
  window.setTimeout(weiter, %remain% * 1000);
});
// -->
</script>

Auf Seite 4 des GLEICHEN Fragebogens, würde ich gerne einen ähnlichen Versuch durchführen, für welchen die Teilnehmer ebenfalls 90 Sekunden Zeit haben. Bisher habe ich denselben PHP Code, HTML Code und denselben Textbaustein verwendet. Wenn ich nun aber den Fragebogen durchgehe, wird nur auf der zweiten Seite der Timer und die Zeit angezeigt, und dann springt Socsci Survey auf die letze Seite (nach Ablauf der 90 Sekunden). Meine Vermutung: Da ich denselben Code verwende, wird gleichzeitig auf Seite 2 und 4 die Zeit zum gleichen Zeitpunkt begonnen und somit läuft die Zeit auf Seite 4 gleichzeitig ab, weshalb das Programm zum Ende springt.

Haben Sie hierfür eine Lösung?

Für Ihre Hilfe wäre ich sehr dankbar.

Mit freundlichen Grüßen.
by SoSci Survey (304k points)
Sobald Sie $time0 auf dieser Seite mittels registerVariable() für den kompletten resetlichen Fragebogen registriert haben, können Sie die Variable nicht auf Seite 4 neu definieren bzw. isset() sagt, dass sie schon definiert ist. Verwenden Sie stattdessen $time1 oder eine andere Bezeichnung.

Ansonsten verweise ich nochmal auf meine Bitte aus dem letzten Kommentar, für die weitere Klärung eine neue Frage hier im Support zu posten, weil dieses Problem mit der ursprünglichen Frage ja nichts mehr zu tun hat. Danke.
by s077606 (130 points)
Vielen Dank, das Problem wurde gelöst in dem ich $time1 gesetzt habe.

Tut mir leid, dies mit der neuen Frage habe ich überlesen.

Vielen Dank für den hervorragenden Support

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

...