====== Navigation im Fragebogen ====== Üblicherweise starten teilnehmende Personen 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 Teilnehmenden dem vom Projektleiter vorgegeben Ablauf. Diese Anleitung beschreibt, wie ein Menü bzw. eine Navigation im Fragebogen ergänzt werden kann, sodass teilnehmende Personen nach Belieben zwischen den Seiten/Abschnitten springen können. Dies ist vor allem dann sinnvoll, wenn ein Formular in SoSci Survey zur Abfrage von Informationen eingesetzt wird (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 die teilnehmende Person 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]]'' generiert. Diese Funktion erzeugt HTML-Code, der mittels ''[[:de:create:functions:html]]'' in der Fragebogen-Seite eingebunden werden kann. Mit folgendem PHP-Code würden auf einer Fragebogen-Seite Knöpfe zu unterschiedlichen Seiten angeboten. 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 ''