Contao-Camp 2024
Seite 2 von 2 ErsteErste 12
Ergebnis 41 bis 51 von 51

Thema: Contao 4 und Inputvar?

  1. #41
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    Gibt es mit Bordmitteln eine einfache Möglichkeit, um den GET-Parameter auf einer Seite zu ermitteln und ihn über mehrere Seiten hinweg zu übergeben bzw. zu speichern, damit er ggf. auf einer Seite mit Formular verwendet werden kann? Den Parameter anhand der URL zu ermitteln und ihn in einem Formular zu verarbeiten ist nicht das Problem, es geht um den Fall, dass der Parameter nicht direkt auf der Seite mit Formular gesetzt wird.

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

    Standard

    Müsstest du halt entweder in der Server Session oder per JavasScript in der Browser Session speichern.
    » sponsor me via GitHub or PayPal or Revolut

  3. #43
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    Ich konnte es mittels JS und Browser Session lösen, vielen Dank für den Hinweis.

    Code:
    <script>
    $(document).ready(function(){
      const urlSearchParams = new URLSearchParams(window.location.search);
      const urlSearchParamsCheck = sessionStorage.getItem('parameter');
      if (urlSearchParamsCheck === null){
        sessionStorage.setItem('parameter', urlSearchParams);
      };
    });
    </script>
    Unabhängig davon müsste man die URL-Parameter evtl. noch bereinigen, damit am Ende keine unerwünschten Elemente in das Formular eingeschleust werden können.

  4. #44
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    kannst auch das einsetzen https://github.com/e-spin/form-scr-default-bundle - dann kannst Du auch Selcts/Checkboxen/Radiobuttons vorbelegen

  5. #45
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    kannst auch das einsetzen https://github.com/e-spin/form-scr-default-bundle - dann kannst Du auch Selcts/Checkboxen/Radiobuttons vorbelegen
    Tatsächlich stellt sich die Frage, wie ich die Werte aus der Browser Session am besten in das Formular übergebe. Kann die Erweiterung mit Werten aus der Browser Session arbeiten oder wie können Werte verarbeitet werden, die nicht direkt auf der Formular-Seite erzeugt werden?

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

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    kannst auch das einsetzen https://github.com/e-spin/form-scr-default-bundle - dann kannst Du auch Selcts/Checkboxen/Radiobuttons vorbelegen
    Das erfüllt nicht die Anforderung. Weder das Speichern in der Session, noch das Auslesen aus der Session, soweit ich sehe. Außerdem ist es ohnehin besser die sessionStorage zu nutzen, anstatt eine Server Session erzeugen zu müssen.
    » sponsor me via GitHub or PayPal or Revolut

  7. #47
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    {{form_rawvalue::<feldname>}} - zieht die Werte aus dem FORM_DATA-Array der aktuellen Session
    also wenn Du ein Formular schonmal ausgefüllt hast, kannst Du damit eingegebene Werte nochmal verwenden

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

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    also wenn Du ein Formular schonmal ausgefüllt hast, kannst Du damit eingegebene Werte nochmal verwenden
    Das war aber nicht gefragt, sondern ein Formularfeld soll mit einem Wert aus einem GET Parameter eines vorherigen Requests belegt werden.
    » sponsor me via GitHub or PayPal or Revolut

  9. #49
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    Um hier nochmals anzuknüpfen - wie lässt sich die sessionStorage am besten so im Formular verarbeiten, dass die Werte über die Felder vorbelegt / verarbeitet werden können? JS lädt ja grundsätzlich erst nach dem serverseitigen PHP und dementsprechend kann ich das DOM auch erst nachträglich manipulieren:

    Code:
    <script>
    document.getElementById("urlparameter").value = sessionStorage.getItem('parameter');
    </script>
    Am Ende komme ich an der Server Session oder einem Cookie nicht vorbei, oder?
    Geändert von bird (01.04.2023 um 09:53 Uhr)

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

    Standard

    Nein warum? Sollte ja genau so funktionieren. Es fehlen halt jetzt Details wie:

    • Wo lässt du dieses JavaScript ausgeben? Je nachdem musst du das JavaScript vielleicht noch anpassen.
    • Hat das Formularfeld wirklich die ID "urlparameter"?
    » sponsor me via GitHub or PayPal or Revolut

  11. #51
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    Ich habe alles in ein Custom Form Field gepackt, hatte dem Feld im Formular aber wohl nicht das richtige Template zugewiesen ... Im Ergebnis funktioniert jetzt alles.

    URL-Parameter (komplett bzw. ungefiltert) abfragen und in der Browser Session speichern:

    Code:
    <script>
    $(document).ready(function(){
      const urlSearchParams = new URLSearchParams(window.location.search);
      const urlSearchParamsCheck = sessionStorage.getItem('parameter');
      if (urlSearchParamsCheck === null){
        sessionStorage.setItem('parameter', urlSearchParams);
      };
    });
    </script>

    URL-Parameter aus der Browser Session laden und Input manipulieren:

    Code:
    <input id="urlparameter" type="hidden" name="<?= $this->name ?>" value="">
    <script>
    $(document).ready(function(){
       document.getElementById("urlparameter").value = sessionStorage.getItem('parameter');
    });
    </script>

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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