Heute soll es darum gehen, wie man Formularen Parameter von außen übergeben kann. Dies funktioniert sowohl bei Formularen, welche mit dem DA-FormMaker erstellt worden sind, als auch mit selbst erstellten Formularen. Unsere Lösung basiert auf Java-Script, d.h. es läuft komplett im Client ab.
Dies erlaubt uns, Formularfelder über einen Link vorzubelegen. Unser Formular ist ein einfaches Kontaktformular:
Die Übergabe soll als GET-Parameter in der URL erfolgen:
Im Gegensatz zur PHP kennt Java-Script keine direkte Möglichkeit GET-Parameter auszulesen. Folgende Funktion hilft uns hier weiter:
function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if (pair[0] == variable) { return pair[1]; } } return ""; }
Die Funktion liest die URL aus, zerlegt die Bestandteile und liefert den Wert des GET-Parameters zurück. Die Funktion können wir nun aufrufen und den Parameter einem Formularfeld zuweisen:
document.DAFORM.email.value = getQueryVariable("email");
Dies setzt in unserem Beispiel die E-Mail-Adresse. Wird keine E-Mail-Adresse übergeben, auch kein Problem, dann bleibt das Feld eben leer. Der gesamte Code sieht so aus:
Dieser wird idealerweise am Ende des Formulars vor dem Body-Tag eingefügt. Würde man ihm Head einfügen, würde das Feld noch nicht geladen sein, wenn der Code ausgeführt wird. Den Code kann man natürlich auch direkt im DA-FormMaker einfügen. Hier geht man in die erweiterten Einstellungen und fügt den Code in die Vorlage ein:
Das komplette Beispiel kann hier heruntergeladen werden:
Ein Kommentar