0 votes
in SoSci Survey (dt.) by s113718 (110 points)

Hallo,

ich möchte eine Umfrage mit eher komplizierteren Fragen durchführen. Die Fragen müssen dabei eventuell zurückgestellt und zu einem anderen Zeitpunkt beantwortet werden. Um den Überblick zu behalten, möchte ich gerne, dass dieTeilnehmer beim Fortsetzen bzw. erneuten Einloggen eine Art Übersichtsseite aller Fragen sehen (vergleichbar mit einem Inhaltsverzeichnis). Darauf sollen sie zum einen alle Fragen im Überblick sehen und zum anderen sehen, ob die Fragen bereits beantwortet sind oder wo noch nicht beantwortete Fragen im Fragebogen sind. Ist eine Übersicht dieser Art in SosciSurvey möglich?

Über eine Antwort würde ich mich freuen.
Beste Grüße

1 Answer

0 votes
by SoSci Survey (328k points)

Wie es der Zufall will, arbeite ich auch gerade an so etwas :) Die schlechte Nachricht ist, dass der Code ein wenig umfangreicher ist. Hier ein Beispiel... unten die Erklärung.

// Completion check
$cStart = (
  (count(array_intersect(getItems('KD01', 'valid'), [2,3,4,5,6,8])) == 6) and
  (value('KD02') > 0) and
  ((value('KD03') > 0) or (value('KD03') == -2))
);
// u.s.w. für jeden einzelnen Menüpunkt

// Navigation
html('<div style="border: 2px solid #CCCCCC; border-left: 0 none; border-right: 0 none; padding: 20px 0 12px 0; margin-bottom: 3em;">'.
  '<div class="s2flex IfKWButtons" style="flex-wrap: wrap; margin-right: -8px">'.NL.
  buttonToPage('start').
  buttonToPage('kontakt', NULL, NULL, ($cStart ? 'complete' : 'incomplete')).
  buttonToPage('section1', NULL, NULL, ($cSection1 ? 'complete' : 'incomplete')).
  buttonToPage('section2', NULL, NULL, ($cSection2 ? 'complete' : 'incomplete')).
  buttonToPage('dokumente', NULL, NULL, ($cDokumente ? 'complete' : 'incomplete')).
  buttonToPage('notizen').
  '<div style="width: 2em;"></div>'.
  buttonToPage('abschicken').
  '</div>'.
  '</div>'
);
option('nextbutton', 'Nächstes Formular');

Das "Feedback" wird hier direkt in der Navigation (Buttons zu den einzelnen Teilen des Fragebogens) angezeigt Und zwar wurden dafür die folgenden beiden CSS-Klassen im Layout definiert:

div.navButtons button.complete:after { content: " \2713"; }
div.navButtons button.incomplete:after { content: " \274C"; }
div.navButtons button.currentPage:after { content: none; }

Zu Beginn des PHP-Codes wird mittels value() und getItems() geprüft, ob ein Formular vollständig ausgefüllt ist. Je nachdem, wir eine Variable auf true oder falsegesetzt. Und abhängig davon wird dann entweder die CSS-Klasse complete oder incomplete für den Navigations-Button gesetzt.

Sie sehen, ich habe oben nur den Complete-Check für eine Seite ... wie gesagt: Ein wenig aufwändiger ist das Ganze schon. Zumal in meinem Beispiel-Code einige Eingabefelder einer offenen Texteingabe durch Dropdowns und andere Eingabefelder ersetzt wurden...

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

...