Zum Inhalt springen

Formularfelder vorbelegen

Erstellt am 21. Oktober 2005 · 8 Antworten · letzte Antwort am 11. Januar 2009

Tags: Inhaltselemente, Tipp

lisardo ·

Da diese Frage immer wieder auftaucht, und ich sie selbst erst gestern hatte, möchte ich sie hier einmal zusammenfassend beantworten. (Vielen Dank auch nochmals an Joey, der mir den richtigen Tipp gegeben hat).

1. Formularfelder mit Werten aus einer Datentabelle vorbelegen:
Zunächst im Content-Element mailform eintragen:

Feldname: | *feldname = input,40 | {DB:tt_datentabelle:uid:datenfeld}

Dabei muss tt_datentabelle durch den Namen der gewünschten Tabelle ersetzt werden (es gehen nur Tabellen mit tt_ vorneweg). uid ist die Datensatznummer und datenfeld ist der Name des gewünschten Feldes der Datentabelle.
Das reicht allerdings noch nicht. Es muss im Template noch folgendes konfiguriert werden:

tt_content.mailform.20.data.insertData = 1

2. Formularfelder mit Übergabewerten aus der URL vorbelegen:
Zunächst im Content-Element mailform eintragen:

Feldname: | *feldname = input,40 | {GPvar:var}

Dabei ist var der Variablenname des Übergabewertes. In der URL also z. B.

www.domain.de/32.0.html?var=BlaBla

Wieder muss im Template folgendes konfiguriert werden:

tt_content.mailform.20.data.insertData = 1

3. Formularfelder mit Daten aus einer Datentabelle vorbelegen, wobei der Datensatz über einen Übergabewert aus der URL ausgewählt wird:
Dazu muss zunächst im Template per TypoScript eine Globale mit dem entsprechenden Wert gefüllt werden. Auf diese Globale kann dann im Content-Element zugegriffen werden.

Registrierung des gewünschten Wertes in einer Globalen; ich entnehme einen Wert aus dem Feld title der Tabelle tt_news. Die Übergabevariable heisst wieder var:

tt_content.mailform {
    15 = LOAD_REGISTER
    15 {
      meinWert.cObject = RECORDS
      meinWert.cObject {
          source.data = GPvar:var
          tables = tt_news
          conf.tt_news = TEXT
          conf.tt_news {
            field = title
          }
      }
    }
}

Jetzt kann ich mit register:meinWert auf den gespeicherten Wert zugreifen und ihn im formmail-Content-Element verwenden:

# Example content:
Feldname: | *feldname = input,40 | {register:meinWert}

Auch hier gilt wieder, dass folgende Zeile im Template stehen muss:

tt_content.mailform.20.data.insertData = 1

OK, das hilft hoffentlich allen weiter, die Formularfelder vorbelegen wollen. Damit sollte alles möglich sein, was man braucht ...

Viele Grüße
Peter

Oleson ·

Danke erstmal, lisardo, für diese schöne Übersicht. 😃

Hallo zusammen,
ist es eigentlich möglich, (also möglich ist es auf jeden Fall - ich meine ohne tiefgreifende Änderungen an den php Files) speziell in der News-Singleansicht (tt_news) die author_email "auzulesen" und im Formular als Empfänger-eMail "vorzubelegen" ?

Folgendes funktioniert zunächst nämlich nicht.

Formular: (als Plugin eingefügt in der "News-Singleansicht")

Feldname: | *feldname = input,40 | {register:meinWert}

Template -> Setup (eingefügt in der Seite "News-Singleansicht")

tt_content.mailform.20.data.insertData = 1
tt_content.mailform {
15 = LOAD_REGISTER
15 {
meinWert.cObject = RECORDS
meinWert.cObject {
source.data = GPvar:var
tables = tt_news
conf.tt_news = TEXT
conf.tt_news {
field = author_email
}
}
}
}

Tschüß und Gruß
Oleson

kinneremer ·

Hallo,
möchte über die URL Daten übergeben. Habe laut Anleitung das Template angepasst und die Variablen angelegt (z.B. {GPvar:firma}{GPvar:Mail}). Doch wenn ich die Daten an die URL anhänge, leitet der redirect automatisch auf die Startseite um und sonst passiert nichts. Gibt es da noch einen Trick?

jlang ·

Hallo!

Hab das cirka verstanden nur komm ich nicht weiter.
Ich möchte den Seitentitel in den Betreff einfügen, da das Formular auf mehreren Seiten als Verknüpfung eingefügt ist, und der Titel die Referenz wäre.

Wie kann ich das machen?

Vielen Dank für die Antwort

J.Lang

Gefunden:

{page:title}
Longnose ·

Gute Sache... wie kann man eine IP-Adresse des Absenders oder z.B. ein Datum einfügen im Formular, ohne gleich auf mailform_plus umsteigen zu müssen?

sventb ·

Gibt es denn auch eine Möglichkeit, Select-Boxen mit Werten aus der Datenbank zu befüllen?

Also so in der Art:

Bitte wählen* | *bla=select | {DB:tt_news_cat:title}

So funktioniert es, aber das ist ja Blödsinn:

Bitte wählen* | *bla=select | {DB:tt_news_cat:1:title}, {DB:tt_news_cat:2:title}