Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:functions:buttontopage [14.03.2019 12:54] leinerde:create:functions:buttontopage [17.03.2021 10:27] admin
Zeile 195: Zeile 195:
 ); );
 </code> </code>
 +
 +
 +===== JavaScript =====
 +
 +Die Funktion ''buttonToPage()'' liefert einen Knopf, dessen aussehen mittels CSS auch angepasst werden kann. Aber im Prinzip ist auch möglich, das Verhalten mit anderen HTML-Elementen zu verknpüfen.
 +
 +Damit der Fragebogen den Sprungbefehl entgegennimmt, muss der ''buttonToPage()'' Befehl zunächst einmal mit dem gewünschten Sprungziel aufgerufen werden.
 +
 +<code php>
 +buttonToPage('pageID');
 +</code>
 +
 +Weiterhin ist eine JavaScript-Funktion erforderlich, welche die passenden Daten in die Fragebogen-Seite schreibt und anschließend die Seite mittels "Weiter" abschickt. Diese ist im folgenden HTML-Code definiert. Zusätzlich wird dort ein normaler Links mittels `<a>` definiert und die Funktion mittels ''addEventListener()'' (ganz am Ende) an diesen Link gekoppelt. Der zweite Event-Listener für ''"contextmenu"'' fängt einen Rechtsklick ab.
 +
 +<code html>
 +<a id="submitLink" href="https://www.soscisurvey.de">www.soscisurvey.de</a>
 +
 +<script type="text/javascript">
 +function goButton(evt) {
 +  var field = document.createElement("input");
 +  field.setAttribute("type", "hidden");
 +  field.setAttribute("name", "submitGo");
 +  field.setAttribute("value", "pageID");  // Hier die passende Seite-Kennung eintragen!
 +  // Apppend the hidden input to the questionnaire form
 +  var form = SoSciTools.getForm();
 +  form.appendChild(field);
 +  // Submit the page
 +  SoSciTools.submitPage();
 +  // Do not follow the original link
 +  evt.preventDefault();
 +  return false;
 +}
 +
 +// Change the behavior of the link
 +document.getElementById("submitLink").addEventListener("click", goButton);
 +document.getElementById("submitLink").addEventListener("contextmenu", goButton);
 +</script>
 +</code>
 +
 +Die Seiten-Kennung, welche in der JavaScript-Funktion in das Formularfeld geschrieben wird, muss dieselbe sein wie im vorigen Aufruf von ''buttonToPage()'' und beide Inhalte (PHP-Code und HTML-Code) müssen auf derselben Fragebogen-Seite stehen.
 +
 +Wenn man nun auf den Link klickt, wird der Klick so ungeleitet, als hätte man auf den Knopf zur Seite "pageID" geklickt.
 +
 +**Hinweis:** Einige Browser sperren womöglich das Abfangen des Rechtsklicks - es kann also durchaus passieren, dass Nutzer über Rechtsklick -> //auf neuer Seite öffnen// direkt auf die verlinkte Seite gelangen.
de/create/functions/buttontopage.txt · Zuletzt geändert: 25.09.2021 21:09 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki