Formularfelder über GET-Parameter in der URL vorbelegen

Oft ist es hilfreich, wenn Formulare bereits mit situationsabhängigen Werten vorbelegt sind. Wenn z.B. bereits das gewünschte Thema oder der richtige Ansprechpartner ausgefüllt sind - jeweils abhängig von der Seite, von der aus man das Formular aufgerufen hat.

Um GET und POST-Werte in Contao auszulesen können wir das Contao-Framework nutzen.

<?php echo \Input::get('name_get_variable'); ?>
<?php echo \Input::post('name_post_variable'); ?>

Beispiel - Seminartermin übertragen

Nehmen wir an, du bietest Seminare an und möchtest beim Klick auf den Anmelde-Link, das entsprechende Feld im Formular automatisch ausfüllen lassen.

1. PHP-Script anlegen

Zunächst legen wir ein kleines PHP-Script in unserem Templates-Ordner an. Darin legen wir fest, welche Variable wir auslesen wollen. In unserem Fall soll das Feld "seminartermin" heißen.

get_seminartermin.php

<?php echo \Input::get('seminartermin'); ?>

2. Formular anpassen

Damit der Wert im Formular ausgegeben wird, müssen wir das soeben angelegte Script dem Formularfeld zuordnen. Dazu fügen wir mit Hilfe des File-Inserttags die PHP-Datei ein.

Wir tragen also bei unserem Feld "seminartermin" unter Standard-Wert folgendes ein:

{{file::get_seminartermin.php}}

3. Parameter an URL anhängen

Damit nun der Termin an das Formular übertragen wird, müssen wir diesen nun an die URL anhängen.

D.h. unser Links sollte dann so aussehen:

 

<a href="zielseite?seminartermin=08.05.2018">

Wenn nun auf diesen Link geklickt wird, dann wird über den GET-Parameter das aktuelle Datum übertragen und beim Formular automatisch ausgefüllt.

Hinweis:

Eine ausführliche Anleitung mit Schritt für Schritt Video, findest du in diesem Video-Kurs.

Tutorial getestet mit Contao:
  • 3.5
  • 4.3
  • 4.4
  • 4.5
Hat dir dieser Artikel gefallen?

Willst du in Zukunft keinen Artikel verpassen?
Dann trage hier deine E-Mailadresse ein und klicke auf "Abonnieren". Du erhältst regelmäßig aktuelle Infos über Contao und die Contao-Academy.

Wir geben deine Daten niemals an Dritte weiter! Du kannst deine E-Mailadresse jederzeit mit nur 1 Klick wieder aus unserem System löschen. Datenschutzhinweis

Über den Autor
Christian Feneberg (Gründer Fenepedia)

Christian Feneberg ist der Gründer der Contao-Academy und nutzt seit 2010 Contao. Neben Contao begeistert er sich für Online-Marketing und SEO.

Folge Christian jetzt auf Twitter, Facebook oder Xing.

3 Kommentare

Daniel | 04.06.2018

Danke für die einfach Anleitung – das geht prima für einfache Datenübergaben. Cool wäre noch gleich ein JS dass die Felder dann auf readonly setzt … was empfiehlst du?

Antwort von Christian Feneberg

Hallo Daniel,

es kommt darauf an, ob du das Feld auch manuell füllen willst.

Wenn du das Formular nur mit Parameter aufrufst, dann könntest du das Feld bereits im Template auf "readonly" setzen.
Oder du machst es per Javascript. Eine wirkliche Empfehlung kann ich dir da nicht geben.

 

Rene | 19.07.2018

Interessant wäre noch die Möglichkeit ein Select vorzubelegen also auf selected zu setzen.

<a href="zielseite?seminartermin=B">

<select name="seminartermin">
<option value="A">Seminartermin A</option>
<option value="B">Seminartermin B</option>
<option value="C">Seminartermin C</option>
</select>

Antwort von Christian Feneberg

Hallo Rene,

das lässt sich am besten mit ein wenig Javascript lösen.
Ich kann dazu gerne mal ein Beispiel erstellen.

Philippe | 03.09.2018

Lieber Christian,

Ich hätte das selbe Anliegen wie Rene und müsste ein select vorbelegen. Könntest du so freundlich sein tatsächlich mal ein Beispiel zu erstellen?

Danke und schöne Grüße

Antwort von Christian Feneberg

Hallo Philippe, ich hab es mir notiert. Wird allerdings noch bist Oktober dauern.

Einen Kommentar schreiben