Zum Inhalt springen

Prefill Formular mit selbstberechneten Daten

Erstellt am 16. Dezember 2008 · 13 Antworten · letzte Antwort am 18. Februar 2009

Tags: Powermail, Frage

TakhLahr ·

Hallo,

ich will in meinem Formular, erstellt mit powermail, ein Feld mit prefill dynamisch ausfüllen lassen, und zwar aus einer Berechnung von anderen Feldern.

Z.B. ein User will mit dem Formular 6 Stück eines Produktes bestellen o.ä., also kann ich das ja so berechnen :

lib.object = TEXT
lib.object.current = 1
lib.object.setCurrent.data = TSFE:fe_user|sesData|powermail_3|uid016
lib.object.setCurrent.wrap = |*40
lib.object.priori.calc = 1

wobei "40" der Preis eines Objektes wäre.

Wie kann ich das jetzt in ein Feld einfüllen? So funktioniert das leider nicht:

plugin.tx_powermail_pi1 {

prefill {

uid17 = TEXT
uid17.value = lib.object
}
}

Ich denke mal, ich muss ihn nur dazu bringen, dass er den Wert von lib.object nehmen soll, und es nicht als String interpretiert. Aber wie mache ich das? Vorausgesetzt natürlich, dass ich es überaupt so machen kann. 🙂

einpraegsam.​net ·

Sobald uid016 (müsste eigentlich uid16 heißen) einen Wert in der Session hat auf Seite 3, sollte Feld uid17 vorgefüllt werden.
Das kann natürlich nur passieren, wenn du uid16 und uid17 nicht auf der gleichen Seite hast (also morestep Form PHP z.B.)...

TakhLahr ·

Okay, das mit uid016 war mein Fehler, habe ich korrigiert. Das Problem ist ja, dass er in dem Feld "lib.object" ausgibt. Aber das ist auch auf der gleichen Seite. Vielleicht liegt es daran?

Wie kann ich es machen, wenn ich auf der gleichen Seite so eine Funktionalität umsetzen will?

einpraegsam.​net ·
TakhLahr schrieb

Wie kann ich es machen, wenn ich auf der gleichen Seite so eine Funktionalität umsetzen will?

Nur mit Javascript (oder eventuell AJAX) - wie willst du denn ein Feld mit einem Wert aus einer Session befüllen, wenn die Session noch nicht gesetzt wurde (passiert logischerweise erst bei Submit)?

TakhLahr ·

Hehe, ja, logisch scheint es, aber man kann ja auch Felder während einer session via conditions anzeigen/verschwinden lassen. Dachte, sowas in der Art würde auch mit den Felderwerten gehen 🙂

Aber danke für deine Hilfe!

monra ·

Hallo,

ich hab das gleiche Problem wie TakhLahr.
Ich benutze "Mehrere Schritte PHP" im Formular, aber es geht trotzdem nicht.

Um falsche IDs und UIDs auszuschliessen, hab ich folgendes ausprobiert:

lib.object = TEXT
lib.object.value = 3 + 4
lib.object.prioriCalc = 1

plugin.tx_powermail_pi1 {
  prefill {
     uid74 = TEXT
     uid74.value = lib.object
  }
}

Auch damit bekomme ich in Feld 74 "lib.object" angezeigt.

Ist bestimmt ein ganz blöder Fehler. :o

Ich hoffe, ihr könnt mir weiterhelfen.

Monika

monra ·

leider nicht. Das hab ich auch ausprobiert. Dann zeigt er gar nichts mehr an.

Trotzdem danke 🙂

edit: stimmt nicht. Dann zeigt er TEXT an

einpraegsam.​net ·

So sollte es aussehen:

lib.object = TEXT
lib.object.value = 3 + 4
lib.object.prioriCalc = 1

plugin.tx_powermail_pi1.prefill.ui74 < lib.object

stimmt das?

monra ·

Ich hab es mal genau so reinkopiert. Dann zeigt er nix an.

wenn ich für die Zuweisung

plugin.tx_powermail_pi1 {
  prefill {
     uid74 = TEXT
     uid74.value < lib.object.[b]value[/b]
  }
}

benutze, zeigt er immerhin mal "3 + 4" an.

Ich bin eher noch TS-Anfänger. Geht die Zuweisung denn generell. Das sind doch verschiedene Objekte? Und uid74.value ist doch eher eine Variable? Kann man einer Variablen ein Objekt zuordnen?

Danke für die Unterstützung 🙂

Monika

einpraegsam.​net ·

Das was du postest stimmt schon mal mit Sicherheit nicht - was ist wenn du das hier machst:

lib.object = TEXT
lib.object.value = blabla

plugin.tx_powermail_pi1.prefill.ui74 < lib.object
monra ·

Ja, du hast Recht mit dem Nichtstimmen :o

Mit dem neuen Code wird eine 0 angezeigt ???

(das fehlende d bei uid hab ich ergänzt)

Du bist wirklich sehr hilfsbereit, danke!

----------

edit:
Ich benutze den Code in einem Extension Template. Wenn ich ihn in das Haupttemplate tue, funktioniert es.

einpraegsam.​net ·
monra schrieb

Ich benutze den Code in einem Extension Template. Wenn ich ihn in das Haupttemplate tue, funktioniert es.

Damit ist die Frage dann vermutlich beantwortet?