Ergebnis 1 bis 13 von 13

Thema: Übertragung von Formulardaten auf eine andere Seite

  1. #1
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard Übertragung von Formulardaten auf eine andere Seite

    Hallo,
    ich stelle gerade meine Seite von 4.13 auf 5.3 um. In meinem angepassten Template (event_full_ticketshop.html5) generiere ich bei jedem event ein html-Formular, das unter 4.13 alle Formularfelder auf die Seite warenkorb.html übertragen hat.
    Am Systen (C5) kann es nicht liegen: der Übertrag funktioniert zwischen zwei eigenständigen Formularen, wie er soll. Nur in der html-Variante funktioniert das nicht; vielleicht fehlt "Weiterleitungsseite (jumpTo)"?
    Der code sieht im Tempate wie folgt aus:
    HTML-Code:
    <div class="ce_form block">
    	<form  action="warenkorb.html" method="post" enctype="application/x-www-form-urlencoded" id="formular" class="warenkorb">
    	<div class="formbody">
                <input type="hidden" name="REQUEST_TOKEN" value="<?= $this->requestToken ?>">
    	    <input type="hidden" name="event" value="<?php echo urlencode($this->id)?>">
                <input type="hidden" name="event" value="<?php echo $this->title));?>">
                <input type="hidden" name="eventbild" value="<?php echo ($this->src)?>">
                <input type="hidden" name="eventdatum" value="<?php echo date("d.m.Y",$this->startDate); ?>">
                <input type="hidden" name="eventbeginn" value="<?php echo date("H:i",$this->startTime); ?>">
                <input type="hidden" name="eventort" value="<?php echo $this->location; ?>">
                <input type="hidden" name="eventpreis" value="<?php echo $this->kgs_vorverkauf; ?>">
                <input type="hidden" name="eventpreis-paypal" value="<?php echo (str_replace(',', '.', $this->kgs_vorverkauf))?>">
    	    <div class="widget widget-submit">
    	         <button type="submit" id="ctrl_<?= $this->id ?>" class="submit">Karten online kaufen<i class="fas fa-angle-double-right"></i></button>
                </div>
    	</div>
    	</form>
    	</div>
    Vielleicht kann mir einer auf die Sprünge helfen.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Was genau funktioniert denn nicht?
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard

    Auf der Seite warenkorb.html kommen keine Werte an, der Quelltext sieht so aus:
    HTML-Code:
    <input type="hidden" name="FORM_SUBMIT" value="auto_form_55">
    <input type="hidden" name="REQUEST_TOKEN" value="8a5c042f03fd18f95ec6e52c.d-7D7gi951LDHh74RPzAg8giefM9wTZMbn2xbuzSUbI.A5qhjHDEuBCgSUyKL7mQ8a5oN6Rr8kELGy7SV6-xE8sZpfe2P8eCGpJUUw">
    <input type="hidden" name="event" value="">
    <input type="hidden" name="eventbild" value="">
    <input type="hidden" name="eventdatum" value="">
    <input type="hidden" name="eventbeginn" value="">
    <input type="hidden" name="eventort" value="">
    <input type="hidden" name="eventpreis" value="">
    <input type="hidden" name="eventpreis-paypal" value="">
    Unter Contao 4.13 aber so:
    HTML-Code:
    <input type="hidden" name="FORM_SUBMIT" value="auto_form_55">
    <input type="hidden" name="REQUEST_TOKEN" value="d6e2a2677172bcfc166.EkSXsNhYQug4CvEnJ-2U5fYK2EaYBmk865PyC9Kxgvw.JxfI8esvGroIeoltZNXTtoBdjwivTD56m-WbMuTiwLBkI6P0jSIIjhVsvA">
    <input type="hidden" name="event" value="FEUER &amp; FLAMME">
    <input type="hidden" name="eventbild" value="assets/images/4/Feuer-und-Flamme-26-ecd6e6b3.jpg">
    <input type="hidden" name="eventdatum" value="11.07.2025">
    <input type="hidden" name="eventbeginn" value="19:00">
    <input type="hidden" name="eventort" value="Haus am Junkernhof">
    <input type="hidden" name="eventpreis" value="12,00">
    <input type="hidden" name="eventpreis-paypal" value="12.00">

    Also "value" ist unter C5 leer. Den post Inserttag habe ich so {{form_session_data::*}} angepasst.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Der {{form_session_data::*}} Insert-Tag funktioniert nur für Daten aus Formularen aus dem Formulargenerator - deines ist aber kein Formular aus dem Formulargenerator (aber evt. solltest du das einfach dahingehend ändern).
    » sponsor me via GitHub or Revolut

  5. #5
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard

    Danke Sooky,

    Also kann ich under C5.3 mit einem html-Formular keine Daten innerhalb Contao an ein Formular aus dem Formulargenerator übergeben, was unter Contao 4.13 kein Problem war. Ich schicke dir mal per PN die C4.13 Domain (im Quellcode).
    Keine andere Lösung möglich, außer getVariable.php
    Geändert von Georgi (13.04.2025 um 14:45 Uhr)

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Zitat Zitat von Georgi Beitrag anzeigen
    Also kann ich under C5.3 mit einem html-Formular keine Daten innerhalb Contao an ein Formular aus dem Formulargenerator übergeben, was unter Contao 4.13 kein Problem war.
    Doch, nur nicht mehr mit deinem ursprünglichen Weg über {{post::*}}, da es diesen Insert-Tag nicht mehr gibt.

    Du könntest, wie bereits erwähnt, das Ursprungsformular über den Formular-Generator umsetzen. Dann würde auch der {{form_session_data::*}} Insert-Tag funktionieren.

    Eine andere Möglichkeit ohne eigene Programmierung wäre z.B. GET statt POST zu verwenden, in Kombination mit der Extension inspiredminds/contao-extended-form-fields, wo du den Standardwert entsprechend gleichnamiger Query Parameter setzen lassen kannst.

    Und ansonsten kannst du dir einen loadFormField Hook umsetzen, und so eine Funktionalität entsprechend selbst umsetzen.
    » sponsor me via GitHub or Revolut

  7. #7
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard

    Danke für deine Mühe. Mein Problem ist, dass ich unter 4.13 unter meiner Veranstaltungsseite (Liste aller Veranstltungen) bei jedem event ein html-Formular im Template mit den erforderlichen Daten aus dem event erzeuge mit dem Link "Karten kaufen". Die notwendigen event-Daten (Ort, Zeit, Preis u.a.) werden an die nächste Seite weitergeleitet und dann mit {{post::*}} angezeigt und in das nächste Formlar vom Formulargenerator einlesen.
    Unter Contao 5.3 stehen diese dann mit {{form_session_data::*}} nicht (mehr) zu Verfügung. Sie werden also nicht übergeben.

    "Ursprungsformular über den Formular-Generator:" Unter 5.3 müsste ich das Formular aus dem Formulargenerator im template aufrufen {{insert_form::*}}, aber wie befülle ich die Felder mit den event-Daten?

    Die andere Übergabe (<a href="warenkorb.html?day=<?php echo $eventdat; ?>&eventbild=<?php echo $scr;...)>">Karten online kaufen</a>) führt im Quelltext zu so einem Ergebnis:
    Screenshot 2025-04-14 105313.png
    Wobei das eventbild nicht angezeigt wird:
    Screenshot 2025-04-14 105427.png

    Ich hoffe nicht, dass es am Update von 4.13 auf 5.3 liegt??

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Wäre es nicht viel einfacher, du übergibst einfach die Event-ID als Query Parameter und befüllst dann das eigentliche Formular mit den Event-Daten?
    » sponsor me via GitHub or Revolut

  9. #9
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard

    Kannst du mir verraten, wie ich die Daten aus dem event hole und in das Formularfeld eintrage? Ich stehe jetzt ein wenig auf dem Schlauch.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Auf deiner Zielseite hast du ja soweit ich sehe ein normales Formular aus dem Formulargenerator. Und ich vermute mal die Daten sollen dann einfach per E-Mail geschickt werden, korrekt?

    Dann könntest du im Endeffekt einfach den prepareFormData Hook nutzen und das $submittedData Array (welches du dir per Referenz übergeben lässt, wie im Beispiel in der Dokumentation) mit all den Daten des Events, die du senden möchtest, erweiterst. Das Event holst du dir dann einfach per CalendarEventsModel::findById().

    Somit brauchst du außer der Event ID auch keine Hidden Felder mehr.
    Geändert von Spooky (14.04.2025 um 11:21 Uhr)
    » sponsor me via GitHub or Revolut

  11. #11
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard

    Ja, das kommt, nachdem es noch 3 weitere Formulare (Formulargenerator) als E-Mail bei uns an.

    NACHTRAG: Das erste Formular ist im event_full Template per html programmiert. Nach dem Absenden standen bis 4.13 die Formfelder in der "Session"(?) auch auf der nächsten Seite zur Verfügung und konnten mit Inserttag {{post::*}} ausgegeben und sogar in ein Formular übertragen werden.
    Unter 5.3 ist das (auch mit {{form_session_data::*}} ) nicht mehr möglich. Sie gehen entweder verloren oder wo sind sie dann?
    Geändert von Georgi (15.04.2025 um 13:51 Uhr)

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.191
    Partner-ID
    10107

    Standard

    Zitat Zitat von Georgi Beitrag anzeigen
    NACHTRAG: Das erste Formular ist im event_full Template per html programmiert. Nach dem Absenden standen bis 4.13 die Formfelder in der "Session"(?) auch auf der nächsten Seite zur Verfügung und konnten mit Inserttag {{post::*}} ausgegeben und sogar in ein Formular übertragen werden.
    Unter 5.3 ist das (auch mit {{form_session_data::*}} ) nicht mehr möglich. Sie gehen entweder verloren oder wo sind sie dann?
    Es wurde ja hier im Thread schon beschrieben, warum deine bisherige Lösung nicht mehr funktioniert. Hier nochmal zusammengefasst:

    • Das Grundproblem ist, dass der {{post::*}} Insert-Tag, den du für deine Lösung benutzt hast, in Contao 5 nicht mehr existiert. Du musst daher in Contao 5 dein Vorhaben anders lösen.
    • In diesem Post wurden bereits ein paar Vorschläge genannt.
    • In diesem Post wurde außerdem hinterfragt, ob es nicht einfacher ist nur die Event ID zu übertragen und dann das Formular entsprechend mit den Event Daten zu befüllen.
    • Du könntest ansonsten aber auch den {{post::*}} selbst implementieren, wobei ich das nicht empfehlen würde - da hier die Gefahr besteht, dass du dir mit einer Sicherheitslücke selbst ins Bein schießt.


    Vermutlich gibt es noch mehr Wege, wie du dein Vorhaben umsetzen kannst.
    » sponsor me via GitHub or Revolut

  13. #13
    Contao-Fan
    Registriert seit
    07.04.2010.
    Beiträge
    288

    Standard

    Danke nochmal für deine Geduld.

    Ich werde mich jetzt mal mit den beiden Vorschlägen befassen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •