====== Navigation im Fragebogen ====== Üblicherweise starten Teilnehmer auf der ersten Seite und füllen den Fragebogen dann sequenziell aus. Mitunter wird der Ablauf durch ein ''[[:de:create:functions:setpageorder]]'' oder ''[[:de:create:functions:gotopage]]'' verändert, aber auch dann folgen die Teilnehmer dem vom Projektleiter vorgegeben Ablauf. Diese Anleitung beschreibt, wie man ein Menü bzw. eine Navigation im Fragebogen ergänzt, sodass Teilnehmer nach Belieben zwischen den Seiten/Abschnitten springen können. Dies ist vor allem dann sinnvoll, wenn man ein Formular in SoSci Survey zur Abfrage von Informationen einsetzt (s. auch [[:de:create:mix-forms]]). {{:de:create:scr.navigation.result1.png?nolink|Beispiel für ein Navigationsmenü im Fragebogen}} ===== Grundlagen ===== Im ersten Schritt werden unter **Fragebogen zusammenstellen** [[:de:create:pageid|Seitenkennungen]] für alle Seiten eingetragen, zu denen der Teilnehmer springen kann. Der Titel der Seite wird als //Notiz// eingetragen. {{:de:create:scr.navigation.pageid.png?nolink|Seitenkennung und Notiz eintragen}} Die eigentlichen Navigationsknöpfe werden von der Funktion ''[[:de:create:functions:buttontopage]]'' erzeugt. Diese Funktion erzeugt HTML-Code, den man mittels ''[[:de:create:functions:html]]'' in der Fragebogen-Seite einbinden kann. Mit folgendem PHP-Code würde man auf einer Fragebogen-Seite Knöpfe zu unterschiedlichen Seiten anbieten. html( '
'. buttonToPage('start'). buttonToPage('kontakt'). buttonToPage('studium'). buttonToPage('leistungen'). buttonToPage('dokumente'). buttonToPage('notizen'). buttonToPage('abschicken'). '
' );
{{:de:create:scr.navigation.result2.png?nolink|Knöpfe zur Navigation zwischen unterschiedlichen Seiten}} Der PHP-Code müsste nun auf jeder einzelnen Seite des Fragebogens (z.B. oben auf der Seite) eingefügt werden. Dies ist natürlich unpraktisch und erschwert nachträgliche Änderungen. Deshalb wird unter **Fragebogen zusammenstellen** im Karteireiter *PHP-Funktionen* eine neue Funktion definiert, welche sich um die Navigation und ggf. weitere Anpassungen kümmert. function navigation() { // Navigation html( '
'. buttonToPage('start'). buttonToPage('kontakt'). buttonToPage('studium'). buttonToPage('leistungen'). buttonToPage('dokumente'). buttonToPage('notizen'). buttonToPage('abschicken'). '
' ); // Beschriftung des Weiter-Knopfes option('nextbutton', 'Nächstes Formular'); }
Auf den einzelnen Seiten des Fragebogens muss dann nur noch ein PHP-Code eingebunden werden, welcher diese Funktion aufruft: navigation(); ===== Darstellung anpassen ===== Mittels CSS lassen sich die Anordnung auf der Seite und die Darstellung der Knöpfe anpassen. Zunächst werden im HTML-Code einige Ergänzungen vorgenommen: * Im äußeren ''
''-Blockelement wird mit dem ''style''-Attribut ein grauer Rahmen (''border'') oben und unten ergänzt, * um die Knöpfe herum wird ein weiteres ''
'' Blockelement mit einer CSS-Klasse (im Beispiel "NavButtons") ergänzt. Die zusätzlich eingetragene Klasse ''s2flex'' erlaubt es, die gesamten Breite auszunutzen. * Zwischen den Knöpfen für "notizen" und "abschicken" wird ein leeres ''
''-Element ergänzt, um etwas Abstand zwischen den Knöpfen zu erzeugen. html( '
'. ''. '
' );
Dazu passend werden im [[:de:create:layout|Fragebogen-Layout]] in der **HTMLVorlage** im ''