Default Werte als URL Parameter

URL Parameter verwenden, um Default Werte im Formular zu setzen

URL-Parameter stellen ein interessantes Feature dar. URL-Parameter er├Âffnen M├Âglichkeit, die Felder in einem Formular ├╝ber den Link, mit dem das Formular aufgerufen wird, mit individuellen Defaultwerten zu f├╝llen.

URL-Parameter sind sehr einfach zug├Ąnglich. Das Feature kann daher theoretisch durch b├Âswillige Nutzer genutzt werden, um ein Formular zu manipulieren und zu missbrauchen. Deshalb hat dieses Feature bei der Entwicklung einige besondere Sicherheitsma├čnahmen erhalten.

Verwendung von URL-Parametern erlauben

Die Verwendung von URL-Parametern ist standardm├Ą├čig f├╝r alle Felder deaktiviert. Wenn Sie f├╝r ein Feld die Verwendung von URL-Parametern zum Setzen eines Defaultwerts verwenden wollen, m├╝ssen Sie dies in den Einstellungen des Feldes explizit aktivieren. Stellen Sie auf dem Reiter “Erweitert” den Parameter “Url Parameter erlauben” auf “ja”. Dies ist eine Sicherheitsma├čnahme.

Format der URL-Parameter

An eine URL k├Ânnen beliebig viele Parameter der Form name=wert angeh├Ąngt werden.
In einer URL muss vor dem ersten Parameter ein Fragezeichen ? stehen.
Zwischen mehreren Parametern steht hingegen ein kaufm├Ąnnisches &.

Die komplette URL sieht dann wie folgt aus:

https://www.domain.de/website?parameter1=value1&parameter2=value2&parameter3=value3

Der Parametername

Der genaue Parametername, den Sie in Ihrer URL verwenden m├╝ssen, um einen Defaultwert f├╝r ein bestimmtes Feld zu setzen, h├Ąngt davon ab, wie Sie das Formular ver├Âffentlicht haben.

Formular als Men├╝eintrag ver├Âffentlicht

Ist das Formular ├╝ber einen Men├╝eintrag vom Typ Visforms » Formular ver├Âffentlicht, dann setzt sich der Parametername folgenderma├čen zusammen:

"form" + ID des Formulars + Wert in der Option "Name" des Feldes

Haben Sie beispielsweise im Formular mit der ID 3 ein Feld, das in der Option “Name” den Wert “name” stehen hat, dann k├Ânnen Sie dieses ├╝ber den Parameternamen form3name ansprechen.

Formular als Visforms Modul ver├Âffentlicht

Ist das Formular ├╝ber ein Visforms Modul ver├Âffentlicht, dann setzt sich der Parametername folgenderma├čen zusammen:

"modvisforms" + ID des Moduls + Wert in der Option "Name" des Feldes

Haben Sie beispielsweise oben genanntes Formular mit der ID 3 ├╝ber ein Visforms Modul ver├Âffentlicht, das die Modul-ID 318 hat, dann k├Ânnen Sie das oben genannte Feld in diesem Formular erreichen ├╝ber den Parameternamen modvisforms318name.

Der Parameterwert

Der Parameterwert ist eine Zeichenkette, die sp├Ąter im Formular-Feld als Defaultwert ├╝bernommen werden soll. Aus Sicherheitsgr├╝nden k├Ânnen nur Zeichenketten als Parameterwert ├╝bergeben werden.

Handelt es sich bei dem Feld um ein Eingabefeld, in das Text eingegeben werden kann, dann k├Ânnen Sie einen beliebigen Defaultwert festlegen. Handelt es sich dagegen um eine Listbox, ein Radio Button, eine Checkbox Gruppe oder eine Checkbox so besitzen diese Felder eine Liste von erlaubten Parameterwerten und Sie m├╝ssen einen solchen erlaubten Wert ├╝bergeben. Erlaubt sind alle Werte, die Sie in der Feldkonfiguration in der Optionsliste als jeweiligen Optionswert eingegeben haben. Im Formular ist dann die zu diesem Wert passende Option ausgew├Ąhlt.

Besonderheiten bei Listboxen und Checkbox Gruppen

Hinweis: Bei Listboxen und Checkbox Gruppen muss an den Parameternamen '[]' angeh├Ąngt werden.

Listboxen und Checkbox Gruppen k├Ânnen unter Umst├Ąnden mehr als eine Option haben, die standardm├Ą├čig im Formular ausgew├Ąhlt ist. Deshalb k├Ânnen Sie f├╝r eine Listbox oder ein Checkbox Gruppe auch mehrere Paare name[]=wert ├╝bergeben. Jedes Paar name[]=wert entspricht einer vorselektierten Option.

Als Beispiel dient ein Formular mit der ID 1. Es wird ├╝ber einen Men├╝eintrag ver├Âffentlicht und enth├Ąlt eine Listbox mit dem Namen “select”. Die Listbox enth├Ąlt die Optionen s1||auswahl1, s2||auswahl2, s3||auswahl3 und es sollen die ersten beiden Optionen vorselektiert sein.

Die komplette Zeichenkette, die an die URL angeh├Ąngt werden muss, lautet dann

  • f├╝r eine URL, die noch keine anderen Parameter enth├Ąlt:
    ?form1select[]=s1&form1select[]=s2
  • f├╝r eine URL, die bereits andere Parameter enth├Ąlt:
    ?form1select[]=s1&form1select[]=s2

Welcher Wert wird im Formular letztlich angezeigt?

Ruft der Benutzer eine Webseite auf, die ein Visforms Formular enth├Ąlt, so wird zuerst f├╝r jedes Formularfeld ├╝berpr├╝ft, ob in der Feldkonfiguration ein Defaultwert gesetzt wurde. Wenn ja, wird dieser Defaultwert ├╝bernommen.

Anschlie├čend wird gepr├╝ft, ob URL-Parameter f├╝r das Feld erlaubt sind und wenn ja, ob in der URL ein Parameter gesetzt wurde. Wenn ja, wird ein eventuell vorhandener Defaultwert mit dem Wert des URL-Parameters ├╝berschrieben.

Wird ein bereits ausgef├╝lltes und abgeschicktes Formular, aufgrund einer Verletzung w├Ąhrend der PHP-seitigen Validierung erneut angezeigt, werden die bereits gemachten Benutzereingaben erneut angezeigt.

Woher kommt die URL?

Links mit URL-Parametern m├╝ssen zurzeit immer von Hand erzeugt werden. Es ist nicht m├Âglich, ein Men├╝ zu einem Formular anzulegen und diesem Men├╝ in der Konfiguration direkt URL-Parameter hinzuzuf├╝gen. Sie k├Ânnen aber die URL zum Men├╝ als Basis verwenden und diese dann etwa aus Artikeln heraus aufrufen und manuell um gew├╝nschte URL-Parameter erweitern.

Anwendungsbeispiel

Use-Case

Sie sind Anbieter von Veranstaltungen. F├╝r jede einzelne Veranstaltung gibt es eine Seite. Auf diesen Seiten gibt es neben einer Beschreibung der Veranstaltung, einen Link zu einem gemeinsamen Anmeldeformular. Sie haben also ein zentrales Anmeldeformular, dass zur Anmeldung f├╝r alle Veranstaltungen verwenden wird.

Sie wollen dem Nutzer Ihrer Webseite die Anmeldung so einfach wie m├Âglich gestalten. Bestimmte Felder des Anmeldeformulars, wie etwa das Datum der Veranstaltung und der Veranstaltungsname, sollen automatisch mit den zur jeweiligen Veranstaltung passenden Daten gef├╝llt werden. Je nachdem, von welcher Veranstaltung aus das Formular aufgerufen wurde.

Umsetzung

Sie k├Ânnen den oben beschriebenen Anwendungsfall leicht ausschlie├člich mit URL-Parametern realisieren.

F├╝gen Sie dem Formular ein Datumsfeld f├╝r das Veranstaltungsdatum ein. F├╝gen Sie dem Formular ein Feld vom Typ Listbox ein. Legen Sie f├╝r Feld vom Typ Listbox f├╝r jede der Veranstaltungen jeweils eine eigene Option an. Geben Sie nun f├╝r das Datumsfeld und die Listbox zur Veranstaltungsauswahl die Verwendung von URL-Parametern frei. Legen Sie ein Men├╝ vom Typ Visforms an, das auf das Formular verlinkt.

Verwenden Sie den Link auf dieses Men├╝ als Basis-Link f├╝r den eigentlichen Link zum Anmeldeformular. Tragen Sie den Basis-Link auf den jeweiligen Veranstaltungsseiten an gew├╝nschter Stelle von Hand eint.

H├Ąngen Sie abschlie├čend jeweils die beiden Veranstaltungs-spezifischen Informationen als URL-Parameter an den Basis-Link zum Anmeldeformular an. Wenn der Benutzer nun auf den Link in einer der Veranstaltungsseiten klickt, wird er auf das Formular geleitet und das Datum sowie der Veranstaltungsname sind bereits korrekt gesetzt.