Hallo,
kann ich irgendwie auf Seite 4 eines mehrseitigen Formulares auf die Werte von
Seite 1 oder 2 zugreifen?
Input::getInstance() liefert nur die Werte der aktuellen Seite.
info: die Erweiterung sessionform soll nicht verwendet werden.
Danke
Mark
Druckbare Version
Hallo,
kann ich irgendwie auf Seite 4 eines mehrseitigen Formulares auf die Werte von
Seite 1 oder 2 zugreifen?
Input::getInstance() liefert nur die Werte der aktuellen Seite.
info: die Erweiterung sessionform soll nicht verwendet werden.
Danke
Mark
Die Daten müssen natürlich irgendwie in die Session gespeichert werden, da ja Input nur die aktuellen Request Parameter abfragen kann...
Ah, habe einen Tipp bekommen ... die liegen alle in $_SESSION['FORM_DATA'] ...
mark
Hallo Mark,
kannst Du einem Nicht-Crack noch ein paar Details mehr geben, wie man auf dieses Array dann zugreift?
Im Template? Oder in einem {{file::irgendwas.php}}?
Danke & Grüße
Peter
Hallo Peter,
es geht eigentlich sogar beides ... ich habe den für mich schnelleren Weg genommen und im Template form.html5 unten dran einfach die $_SESSION['FORM_DATA'] als Array ausgelesen und für mich weiterverwendet.
Bis dahin
Mark
in der Tat, klappt beides - danke!
Hi Mark,
könntest du dein verändertes Template mal als Beispiel hier posten? Ich versuche nämlich gerade auch auf Daten eines vorigen Formulars zuzugrifen. Anzeigen kann ich die ja per Inserttag {{form::name}} ja schon auf der Seite in einem Inhaltselement oder per HTML im Formulargenerator. Was halt noch nicht klappt ist, die Daten aus dem vorigen Formular mit in der E-Mail zu versenden da der EFG ja nur auf die Daten der aktuellen Seite zurückgreift.
Ich verwende ein Contao 3.0.0
Viele Grüße,
operatorone
Ich habe unten am Template:
<?php
$form = $_SESSION['FORM_DATA'];
?>
mit var_dump($form); kannst Du alle Daten sehen, die bisher on der Session liegen und per Array auch darauf zugreifen.
mark
Cool, danke dir für die Antwort.
Hiermitkann ich ja alle Werte anzeigen. Das hab ich ausprobiert und hat auch super geklappt.PHP-Code:<?php echo var_dump($form); ?>
Hier der Output:
array(13) {
["FORM_SUBMIT"]=> string(16) "auto_planung"
["REQUEST_TOKEN"]=> string(32) "702df24b820cec0ef0ba5333bcfb7be9"
["FORM_PAGE"]=> string(1) "1"
["c193261f2cda6e0e83f4783c10879f0e8"]=> string(2) "12"
["MAX_FILE_SIZE"]=> string(7) "2048000"
["cc13619505c3aeba4cef47558a371ed8e"]=> string(1) "9"
["ca75d4c0e631e7bda88879575f22d3206"]=> string(2) "13"
["start"]=> string(9) "KT"
["flugziel"]=> string(16) "FRA"
["abflug"]=> string(10) "04.04.2013"
["landedatum"]=> string(10) "07.04.2013"
["passagier"]=> string(16) "1 Erwachsener"
["klasse"]=> string(5) "first" }
Nur wie bekomme ich die nun an die E-Mail weitergegeben?
Ich habe unter "Per E-Mail versenden (formatierter Text / HTML)" folgendes eingegeben
und die Felder von Abflug bis Passagier kommen aus dem ersten Formular und bleiben leer.
Abflug: {{form::abflug}}
Landung: {{form::landung}}
Flugziel: {{form::flugziel}}
Passagier: {{form::passagier}}
Name: {{form::name}}
E-Mail: {{form::email}}
Telefon: {{form::telefon}}
Nachricht: {{form::message}}
Wie müsste ich die Felder vorbereiten, um Sie in die E-Mail zu integrieren?
Wäre super, wenn du mir dazu noch einen Tip geben könntest.
Viele Grüße,
operatorone
GrussPHP-Code:<?php $form = $_SESSION['FORM_DATA']; ?>
Abflug: <?php echo $form['abflug']; ?>
Landung: <?php echo $form['landung']; ?>
Flugziel: <?php echo $form['flugziel']; ?>
Passagier: <?php echo $form['passagier']; ?>
Name: {{form::name}}
E-Mail: {{form::email}}
Telefon: {{form::telefon}}
Nachricht: {{form::message}}
Chris
Hi Chris,
danke dir für den Code. Also müsste die HTML-Mail-Vorlage des EFG dazu so aussehen?
Oder bring ich da etwas durcheinander?
Til
HTML-Code:<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>Online-Check-in</title>
<style>
<!--
body { font-family: Arial, Helvetica; font-size: 11pt; color: #000000; margin: 0; padding:0; }
td, p, div { font-family: Arial, Helvetica; font-size: 11pt; color: #000000; }
-->
</style>
</HEAD>
<BODY style="font-family: Arial, Helvetica; font-size: 11pt; color: #000000; margin: 0; padding:0; background-color:#FFFFFF">
<div style="font-family: Arial, Helvetica; font-size: 11pt; color: #000000;">
<p>Herr/Frau {{form::name}},<br><br>
hat am {{date}} den Online-Check-in ausgefüllt.<br><br>
Folgende Daten wurden eingegeben:<br>
<?php $form = $_SESSION['FORM_DATA']; ?>
Abflug: <?php echo $form['abflug']; ?><br>
Landung: <?php echo $form['landung']; ?><br>
Flugziel: <?php echo $form['flugziel']; ?><br>
Passagier: <?php echo $form['passagier']; ?><br>
Name: {{form::name}}<br>
E-Mail: {{form::email}}<br>
Telefon: {{form::telefon}}<br>
Nachricht: {{form::message}}<br>
Datei: {{form::file}}<br>
{{form::file?attachment=true}}
</p>
</div>
</BODY>
</HTML>
Vermutlich ja :)
Hallo,
ich arbeite gerade an einem ähnlichen Problem unter Contao 2.10.4 (page template in xhtml). Leider wird PHP in der Antwort-HTML-Mail-Vorlage nicht ausgeführt.
Hat jemand eine Idee, woran das liegen könnte?
Vielen Dank im Voraus!
Grüße
Uli
Hi Ulrich,
musste das Teilprojekt erstmal einem anderen unterordnen und antworte jetzt etwas spät, aber ich habe das gleiche Problem. Bei mir wird auch der PHP-Code in der Mail nicht ausgeführt und zeigt nur die Ergebnisse aus dem aktuellen Formular. Muss da noch eine ID übergeben werden oder wie kann ich die Daten des vorigen Formulars abfragen?
Viele Grüße,
operatorone
HTML-Code:<BODY style="font-family: Arial, Helvetica; font-size: 11pt; color: #000000; margin: 0; padding:0; background-color:#FFFFFF">
<div style="font-family: Arial, Helvetica; font-size: 11pt; color: #000000;">
<p>Herr/Frau {{form::name}},<br><br>
hat am {{date}} den Online-Check-in ausgefüllt.<br><br>
Folgende Daten wurden eingegeben:<br>
<?php $form = $_SESSION['FORM_DATA']; ?>
Abflug: <?php echo $form['abflug']; ?><br />
Landung: <?php echo $form['landung']; ?><br />
Flugziel: <?php echo $form['flugziel']; ?><br />
Passagier: <?php echo $form['passagier']; ?><br />
Name: {{form::name}}<br>
E-Mail: {{form::email}}<br>
Telefon: {{form::telefon}}<br>
Nachricht: {{form::message}}<br>
Datei: {{form::file}}<br>
{{form::file?attachment=true}}
</p>
</div>
</BODY>
So, nun habe ich dank dieses Beitrags herausgefunden wie ich FORM_DATA abfragen und an mein Formular weitergeben kann. Verwendet habe ich dazu den EFG und die darin enthaltene HTML-Mail-Vorlage.
Bevor ich das zweite Formular abschicke zeige ich im Frontend noch mal die eingegebenen Daten in einem Text-Inhaltselement an:
HTML-Code:<table style="width: 500px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width: 200px;"><strong>Flugziel</strong><br>{{form::feld1}}</td>
<td><strong>Abflug</strong><br>{{form::feld2}}</td>
</tr>
<tr>
<td style="width: 200px;"><strong>Passagier</strong><br>{{form::feld3}}</td>
<td><strong>Landung</strong><br>{{form::feld4}}</td>
</tr>
</tbody>
</table>
Die Mail-Voralge sieht folgendermaßen aus:
Die Datei mail.php liegt im Ordner templates und enthält folgenden Code:HTML-Code:<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<title>medienflieger mail</title>
<style>
<!--
body { font-family: Arial, Helvetica; font-size: 11pt; color: #000000; margin: 0; padding:0; }
td, p, div { font-family: Arial, Helvetica; font-size: 11pt; color: #000000; }
-->
</style>
</HEAD>
<BODY style="font-family: Arial, Helvetica; font-size: 11pt; color: #000000; margin: 0; padding:0; background-color:#FFFFFF">
<div style="font-family: Arial, Helvetica; font-size: 11pt; color: #000000;">
<p>Herr/Frau {{form::name}},<br><br>
hat am {{date}} den Online-Check-in ausgefüllt.<br><br>
Folgende Daten wurden eingegeben:<br>
{{file::mail.php}}
<strong>Name: </strong>{{form::name}}<br>
<strong>E-Mail: </strong>{{form::email}}<br>
<strong>Telefon: </strong>{{form::telefon}}<br>
<strong>Nachricht: </strong>{{form::message}}<br>
<strong>Datei: </strong>{{form::uploads}}<br>
{{form::uploads?attachment=true}}
</p>
</div>
</BODY>
</HTML>
Hoffe ich kann damit noch anderen im Forum helfen die vor dem gleichen Problem stehen.PHP-Code:<?php
echo "<strong>Feldbeschreibung1: </strong>" . $_SESSION[FORM_DATA]['feld1']."<br />" . "<strong>Feldbeschreibung2: </strong>" . $_SESSION[FORM_DATA]['feld2']."<br />" . "<strong>Feldbeschreibung3: </strong>" . $_SESSION[FORM_DATA]['feld3']."<br />" . "<strong>Feldbeschreibung4: </strong>" . $_SESSION[FORM_DATA]['feld4']."<br />";
?>
Viele Grüße,
operatorone