Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 15. März 2013 11:54

Exceeder
hat von CMSMS gehört
Registriert: 15. März 2013
Beiträge: 3

Re:

Hallo,

ich suche nach einer Möglichkeit Formularfelder via Übergabe über GET-Parameter an bestimmten Stellen automatisch vorauszufüllen. Konkret geht es um die Übergabe von z.B. einer Vertragsnummer.

Ich habe nun seit mehreren Stunden rumprobiert, finde aber keine zufriedenstellende Lösung. Das ganze sollte irgendwie ohne JavaScript funktionieren. Ich habe mir bereits benutzerdefinierte Tags angelegt, mit welchen man an die GET-Parameter dran kommt:

if(isset($params['var']) && $params['var'] != '')
  echo isset($_GET[$params['var']]) ? $_GET[$params['var']] : '';

Ein Testformular ist schnell erzeugt: Textfeld anlegen und z.B. senden an E-Mail Empfänger. Beim Textfeld kann man unter "Erweiterte Einstellungen" unter "Standardwert für das Feld:" einen Wert eintragen. Leider wird das aber nicht mit smarty evaluiert.

Ist das irgendwie machbar, wenn ja wie?

Die URL sollte dann z.B. so aussehen:

http://domain.de/seitenalias/contracts_number=V-123456789-1

Der Wert von "contracts_number" landet dann im Formular (ich habe die Separatoren auf / und nicht auf & gestellt und habe mod_rewrite). Der Wert wird über mein benutzerdefiniertes Tag problemlos gefunden. Nur ich bekomme ihn nicht in das Formular.

Beitrag geändert von Exceeder (15. März 2013 11:55)

Offline

#2 15. März 2013 13:02

czarnowski
arbeitet mit CMSMS
Registriert: 18. Oktober 2012
Beiträge: 457

Re:

Die globalen Variable _get kann man mit Smarty direkt nutzen - die werden von Smarty selbst einfach durchgeleitet.

http://www.smarty.net/docs/en/language. … smarty.tpl

Allerdings - die direkte Nutzung solcher Variable ohne Filterung ist gefährlich da das das typische Einfallstor für Schadcode ist.

Offline

#3 15. März 2013 13:19

Exceeder
hat von CMSMS gehört
Registriert: 15. März 2013
Beiträge: 3

Re:

Hallo,

danke für den Link. Leider hilft der aber noch nicht wirklich weiter. GET-Parameter sind nur dann ein Einfallstor, wenn sie ungefiltert in die Webseite gelangen. Deswegen mein benutzerdefinierter Tag. Da kann ich entsprechende Prüfungen durchführen und auch escapen. Aber das Tag ist auch nicht das Problem. Die Frage ist, wie ich den Wert in den FormBuilder bekomme.

Mit JavaScript geht das irgendwie, aber das ganze soll auch ohne JS funktionieren.

Offline

#4 15. März 2013 13:31

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.316
Webseite

Re:

das ist sehr simpel.
{FormBuilder form='sample_form' value_FIELDNAME=$smarty.get.parameter}
oder
{FormBuilder form='sample_form' value_fldNUMBER=$smarty.get.parameter}

Anwendung:

www.domain.de?parameter=test

Beitrag geändert von nicmare (15. März 2013 13:32)

Offline

#5 15. März 2013 13:48

Exceeder
hat von CMSMS gehört
Registriert: 15. März 2013
Beiträge: 3

Re:

Hallo,

na da soll mal einer drauf kommen... Funktioniert aber, danke. smile

Beitrag geändert von Exceeder (15. März 2013 13:48)

Offline

#6 15. März 2013 14:07

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.316
Webseite

Re:

steht doch in der hilfe vom modul! smile

Offline

Fußzeile des Forums

Powered by FluxBB