Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 21. September 2013 21:57
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
[GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Hallo,
ich habe ein Formularseite, die die Ergebnisse per E-Mail an den Besucher und eine feste Adresse schickt. Das funktioniert auch schon alles so wie ich es will. Die Ergebnisse werden nach dem E-Mail-Versandt via Bestätigungstemplate im Frontend angezeigt.
Jetzt möchte ich aber das einseitige Formular nicht sofort wegschicken, sondern auf einer zweiten Seite eine Zusammenfassung (wie im Bestätigungstemplate) anzeigen, damit der Besucher seine Eingaben kontrollieren und ggf. zur vorhergehenden Seite zurückspringen kann, um Änderungen vorzunehmen.
Mehrseitige Formulare kann man mit dem Feld "-Seitenumbruch" generieren. Nun möchte ich aber die Ergebnisse des Formulars (1. Seite) anzeigen. Mit dem Feld "-statischer Text" geht es nicht, da dort keine Smarty-Variablen ausgewertet werden. Ein entsprechendes Feld für "dynamischen Text" oder etwas annähernd Vergleichbares habe ich nicht gefunden.
Ich benutze Formbuilder 0.7.3 und CMSms 1.10.3 (ja ich weiß, es gibt schon 1.11.7).
Danke Hani
PS: Hier ein Auszug aus Template für die Zusammenfassung:
[== html ==]
<p>Ihre Anmeldedaten:</p>
<p>
<strong>Anzahl Erwachsene</strong>: {$anzahl_erwachsene}<br />
<strong>Anzahl Kinder (bis 12 Jahre)</strong>: {$anz_kids}<br />
<strong>Anrede</strong>: {$anrede}<br />
<strong>Vorname</strong>: {$vorname}<br />
<strong>Nachname</strong>: {$nachname}<br />
<strong>Email-Adresse</strong>: {$e_mail_adresse}<br />
<strong>Bemerkungen</strong>:<br />
{$bemerkungen}
</p>
PPS: Es gibt zwar das Feld "*Validierung über die Mailadresse", die über ein Art "Double Opt-in" die Ergebnisse (via Template) an den Besucher schickt. Überden Klick auf einen Bestätigungslink werden die Daten verifiziert, aber das ist zu langwierig und nicht das was ich will. Man kann auch keine Daten mehr ändern, sondern muss bei einer Fehleingabe das Formular neu ausfüllen.
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#2 22. September 2013 22:35
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Jetzt habe ich doch noch die Smarty-Felder in den erweiterten Einstellungen von "statischer Text" gefunden.
Smarty data or logic that is meant to be sent with this field: (Da habe ich mein Template reinkopiert)
Smarty-Tags in den Feldern verarbeiten?: (wird automatisch angehakt, wenn obiges Feld gefüllt wird)
Ich bekomme aber folgende Fehlermeldung:
Anzahl Erwachsene:
Anzahl Kinder (bis 12 Jahre):
Catchable fatal error: Object of class stdClass could not be converted to string in /www/htdocs/xxx/lib/smarty/Smarty.class.php(1938) : eval()'d code on line 11
Beide Eingaben für "Erwachsene" und "Kinder" sind ganz normale Ganzzahlen und sollten doch leicht in Strings gewandelt werden können.
Beitrag geändert von hibr (22. September 2013 10:32)
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#3 22. September 2013 06:56
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Die Variable sollte doch auch Inhalt des POST Array sein. Hast du es schon mit $smarty.post.anz_kids probiert?
Offline
#4 22. September 2013 11:11
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Danke für die schnelle Antwort, Cyberman.
Ich habe "Anzahl Kinder: $smarty.post.anz_kids" in "-Statischer Text" im Feld "Smarty data or logic that is meant to be sent with this field:" eingetragen und "Smarty-Tags in den Feldern verarbeiten?" aktiviert.
Es erscheint keine Textausgabe auf der zweiten Seite irgendeiner Art. Auch der statische Anteil: "Anzahl Kinder:" wird nicht ausgegeben. Allerdings gibt es auch keine Fehlermeldung mehr.
Danke erst mal soweit.
Hani
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#5 22. September 2013 12:12
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Fehlen da für einen Smarty Tag nicht noch die geschweiften Klammern?
By the way - die vielen strong Formatierungen in deinem Template machen aber auch wenig Sinn und sind garantiert vorläufig, stimmt's ?
Offline
#6 23. September 2013 23:09
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Fehlen da für einen Smarty Tag nicht noch die geschweiften Klammern?
Ja, die habe ich im Posting vergessen, waren aber real im Formularfeld enthalten. Trotzdem danke für den Hinweis.
Ich habe mal probeweise {get_template_vars} eingetragen. Auch da gab es keine Textausgabe. Smarty-Tags werden wohl trotz angehakter Option nicht ausgewertet oder deren Ausgabe unterdrückt. Bug oder Feature?
Als Workaroud könnte ich die Ausgabe über ein UDT realisieren und mittels "-Benutzerdefinierter Tag"-Feld ins Formular einbinden. Muss dann nur noch herausfinden, wie ich im UDT an die Variablen des FormularBuilder-Moduls komme.
Das ist zwar nicht elegant, wäre aber ein begehbarer Weg, wenn er dann funktioniert.
LG Hani
PS: Komisch das es kein passendes Feld für mein Anliegen gibt. Diese Funktion habe ich schon auf vielen Seiten gesehen, gerade bei mehrseitigen Formularen. So selten kann IMHO die Anforderung nicht sein. Das Modul hat ja sonst so ausgeklügelte Funktionen. --Trotzdem ein super Modul.
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#7 24. September 2013 04:51
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Funktioniert der Smarty Tag nur im Formular nicht? Hast du ihn schon mal außerhalb des FB, also direkt auf der Seite aufgerufen?
Offline
#8 25. September 2013 20:43
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Habe ein Seitenumbruch im Formular eingefügt und die w.u. genannten Smarty-Tag auf die Seite, die das Formular aufruft, eingetragen. Hab das Formular komplett ausgefüllt und beim Klick auf "Weiter" sollte(n) die Tag(s) Werte enthalten und auf der zweiten Seite angezeigt werden. ("Inline" ist natürlich im Formular angehakt.)
Aber weder {$smarty.post.anz_kids} noch {$anz_kids} funktionieren. Ersteres gibt wie im Formular wieder keine Ausgabe und letzteres die w.o. genannte Fehlermeldung und bricht die Ausführung ggf. nachfolgende Smarty-Tags ab. Also das gleiche Verhalten, wie im Formular.
{get_template_vars} funktioniert auf der Seite und gibt z.B. 'anz_kids = Object' aus.
Danke fürs Dranbleiben.
Gruß Hani
Beitrag geändert von hibr (25. September 2013 20:45)
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#9 26. September 2013 06:34
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Hast du mal ein {$anz_kids|print_r} gemacht, um zu sehen was sich hinter dem Objekt verbirgt?
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#10 26. September 2013 19:14
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Bei Eingabe von 1 im Formular für 'anz_kids' gibt {$anz_kids|print_r}
stdClass Object ( [value] => 1 ) 1
aus.
Hani
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#11 26. September 2013 19:47
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Hm, bringt uns nicht weiter.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#12 27. September 2013 19:09
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Und alle anderen Werte aus dem Zusammenfassungs-Template funktionieren?
Offline
#13 27. September 2013 19:58
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Nein! Es liegt definitiv nicht an einer Variablen, wie anz_kids. Auch andere Felder, wie das Feld 'nachname' liefern nichts zurück
Meinen Workaround in #6 mit dem UDT musste ich auch begraben, da ich die Variablen ja auch im UDT nichts zurück liefern.
Hab übrigens auch $anz_kids->value (im UDT) bzw. {$anz_kids->value} (auf der Seite u. Formular) versucht. Keine Ausgabe obwohl {$anz_kids|print_r} zeigt, dass - wenn ich es richtig interpretiere - in der Instanzvariable/Eigenschaft 'value' einen Wert gespeichert ist.
Beitrag geändert von hibr (28. September 2013 11:26)
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#14 27. September 2013 20:01
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Und wie holst du dir die Smarty-Variablen in den UDT?
Offline
#15 28. September 2013 10:50
- hibr
- probiert CMS/ms aus
- Registriert: 05. Januar 2011
- Beiträge: 29
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Danke Cyperman fürs Nachhaken.
Hab Fehler in meinem UDT gefunden und jetzt funktioniert es mit dem UDT und dem Feld "-Benutzerdefinierter Tag" im Formular.
Hier mein UDT-Bsp.:
[== PHP ==]
$gCms = cmsms();
$smarty = $gCms->GetSmarty();
// holt sich das Objekt/die Variable "anz_kids" aus Smarty
$anz_kids = $smarty->get_template_vars('anz_kids');
// gibt die Eigenschaft 'value' des Objekts 'anz_kids' aus
echo "Anzahl Kinder: " . $anz_kids->value;
Bem.: Ich weiß nicht ob das auch mit CMSms 1.11 funktioniert, da AFAIK man $smarty (Zeile 3) nicht überschreiben darf. Ich weiß es aber nicht genau. - Nachtrag: Funktioniert auch mit 1.11
Wichtig ist nur, dass man im Formular das Feld "-Seitenumbruch" einfügt (oder je nach Anwendung das Formular abschickt) und danach das Feld "-Benutzerdefinierter Tag" mit dem o.g. UDT, sonst sind keine Werte in den Formularobjekten.
Diese Lösung ist IMHO nicht so elegant, aber scheint ja zu funktionieren.
Hani
PS: Für das Archiv: Die verfügbaren Smarty-Variablen bekommt man mit dem Tag {get_template_vars} angezeigt und die Formularvariablen heißen so, wie unter Feldname oder Feldalias angegeben. Die verfügbaren Eigenschaften der FormularBuilder-Felder sind: name (Feldname), type (Feld-Type), id (interne ID), value (eingegebener/ausgewählter Wert des Feldes) und ggf. valueArray (Array der Feldwerte)
Beitrag geändert von hibr (04. Oktober 2013 13:52)
Hanis Sammelsurium - How-To's · Erfahrungs- und Meinungsberichte
Offline
#16 28. September 2013 11:33
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Formbuilder: Zusammenfassungsseite anzeigen vor dem Abschicken
Sehr seltsam - beweist doch dein udt, dass der Wert in Smarty vorhanden ist ...
Offline
Seiten: 1