Webforms in Drupal: Datenübergabe per URL

Webforms in Drupal: Datenübergabe per URL

Ein Webform mit Parametern aus einer URL beim Aufruf zu befüllen, z.B. ein Kontaktformular bei dem man die Empfängerabteilung voreinstellt, kann manchmal sehr nützlich sein. Wie es geht zeigen wir im folgenden Beitrag.


Der Anwendungsfall: Auf einer Webseite gibt es ein Kontaktformular in dem die Besucher auswählen können, mit welcher Abteilung sie Kontakt aufnehmen möchten, z.B. Einkauf, Vertrieb, Buchhaltung, Support. Dann gibt es auf der Seite verschiedene Unterbereiche für die einzelnen Abteilungen. Hier soll es jeweils einen Link zum Kontaktformular geben, bei dessen Aufruf die Abteilung, aus deren Bereich man gerade kommt, bereits mit dem Abteilungsschlüssel vorbelegt ist. Wenn der Besucher also im Bereich "Support" der Website auf einen Kontakt-Link klickt kommt er auf das Kontaktformular, wo das Ziel "Support" bereits voreingestellt ist.


Dazu legen wir ein neues Webform an, in dem wir zunächst die üblichen Felder anlengen, z.B. Name, Mailadresse, Betreff, Nachricht usw. Zusätzlich legen wir ein Options-Auswahlfeld an und stellen dieses auf Listenansicht ein. Wir nenen das Feld "Ihren Ansprechpartner auswählen" mit dem Feld-Key "ihr_ansprechpartner".  In den Feldeinstellungen tragen wir unter "Optionen" dann die Schlüssel-Werte-Paare für die oben aufgeführten Abteilungen ein und im Feld "Standardwert" den Wert "[current-page:query:service_name]" ein. Hierbei ist "service_name" ein von uns gewählter Schlüssel, der später in der URL für den Aufruf des Webforms verwendet wird. Der Teil "[current-page:query:]" ist ein im Webform verfügbares Token. Das ganze sieht dann so aus:



Jetzt tragen wir noch die E-Mail-Adressen ein, die mit den jeweiligen Abteilungen verknüpft werden sollen. Die geschieht wie gewohnt unter "Webform >> E-Mails". Unter "Component value" wählen wir unser Feld "Ihren Ansprechpartner auswählen" und klicken anschließend auf "Hinzufügen".



Auf der nächsten Seite tragen wir für jeden Schlüsselwert die gewünschte Ziel-Mailadresse ein, also für "Support" support@example.com, für "Buchhaltung" buchhaltung@example.com usw.


Anschließend speichern wir alles und testen unser Formular, um zu sehen, ob alles wie gewünscht funktioniert.


Um das Formular jetzt mit einem vorbelegten Wert für "Ihren Ansprechpartner auswählen" aufzurufen, müssen wir die URL des Aufrufs mit dem oben eingetragenen Key "service_name" und dem jeweiligen Optionskey für die Abteilung aufrufen. Für die Abteilung Support sieht die URL dann so aus:


http://example.com/kontaktformular?service_name=support


Hierbei ist kontaktformular unser URL-Alias für das Kontaktformular und example.com unsere Domain. Hinter dem "?" kommt dann unser Schlüssel aus dem Feld "Standardwert" des Webforms und nach dem "=" der Optionskey der Abteilung.


Fertig. Der Aufruf der URL öffnet nun das Formular mit vorbelegten Feld "Ihren Ansprechpartner auswählen".