Ergebnis 1 bis 23 von 23

Thema: Nur Feldwerte in Link übergeben

  1. #1
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard Nur Feldwerte in Link übergeben

    Hallo Leute,

    ich hab eine Externe Seite eingerichtet mit "https://www.test.at/" (nur zum testen, funktionslos)
    Jetzt hab ich ein Formular eingerichtet und bei "Weiterleitungsseite" diese Externe Seite angegeben und den Übertragungsmodus auf "GET" gesetzt.
    Wenn ich im FE dann auf senden klicke, werden die Werte alle übergeben.

    Und so sieht der Link aus: http://test.at/de?arrivalDate=2024-0...&numChildren=0

    Wie bekomme ich es hin, dass der Link aber so aussieht: http://www.test.at/2024-03-29/2024-03-30/2/0

    Es soll also das /de? weg und auch die Feldbezeichnung inkl. =

    Wie kann ich das anstellen?
    LG, Andi

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

    Standard

    Umstellen auf POST und den Redirect dann via processFormData Hook implementieren.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Ok, hab mal einen Versuch gemacht, aber das bringt mir nichts.

    Ich muss genau in diesem Format den Link so erstellen. Das ist die Vorgabe der anderen Homepage. Hier handelt es sich um Easybooking. Leider kann ich nicht das Anfrage-Modul von Easybooking implementieren. Ich muss ein eigenes Formular bauen (ist schon gebaut) und die Werte dann so an easybooking schicken bzw. den Link so aufrufen.
    LG, Andi

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

    Standard

    Zitat Zitat von m-werk Beitrag anzeigen
    Ok, hab mal einen Versuch gemacht, aber das bringt mir nichts.
    Was genau meinst du damit?



    Zitat Zitat von m-werk Beitrag anzeigen
    Ich muss genau in diesem Format den Link so erstellen. Das ist die Vorgabe der anderen Homepage.
    Ja, wie gesagt, das kannst du ja alles in deinem processFormData Hook machen.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    So, jetzt häng ich mal wieder voll durch.

    Folgendes hab ich gemacht. Ich hab unter system/modules einen Ordner "formData" angelegt. Darunter hab ich einen Ordner "config" angelegt und darin hab ich eine config.php mit folgendem Inhalt:
    PHP-Code:
    $GLOBALS['TL_HOOKS']['processFormData'][] = array('formDataClass''processFormData'); 
    Im Ordner "formData" hab ich eine formDataClass.php mit folgendem Inhalt zum Testen angelegt:
    PHP-Code:
    <?php
    namespace Contao;

    class 
    formDataClass extends Backend
    {
        public function 
    processFormData($arrPost$arrForm$arrFiles)
        {
            
    print_r($arrPost);
            
    print_r($arrForm);
            
    print_r($arrFiles);
        }
    }
    Jetzt meckert mir das Frontent wieder mit der Klasse herum. Ich hab das mit der Klasse noch nicht herausen.
    Folgende Fehlermeldung:
    Uncaught PHP Exception RuntimeException: "System::importStatic() failed because class "formDataClass" is not a valid class name or does not exist." at System.php line 238
    Ich steh voll an. Bitte um hilfe. Ich weiß nicht wie und wo ich die Klasse validieren kann.
    LG, Andi

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

    Standard

    Warum machst du das so? Halte dich doch lieber an die offizielle Dokumentation:

    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Ich hab mir das oft angesehen, komme aber nicht dahinter, wie das gemeint ist bzw. wo soll ich diesen Hook in welcher Datei wie einbauen?
    LG, Andi

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

    Standard

    Genau so wie es in der Dokumentation steht.
    » sponsor me via GitHub or PayPal or Revolut

  9. #9
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Ich kapiers einfach nicht.

    Ich hab folgendes gemacht:

    unter "system/modules" hab ich einen Ordner "formData" angelegt.
    Darunter den Ordner "config" und in diesem Ordner hab ich die Datei config.php mit jetzt folgendem Inhalt:
    PHP-Code:
    if (isset($GLOBALS['TL_HOOKS']['processFormData']) && \is_array($GLOBALS['TL_HOOKS']['processFormData']))
    {
        foreach (
    $GLOBALS['TL_HOOKS']['processFormData'] as $callback)
        {
            
    $arrFields $this->{$callback[0]}->{$callback[1]}($arrSubmitted$this->arrData$arrFiles$arrLabels$this);
        }

    Im Verzeichnis "formData" hab ich die Datei "ProcessFormDataListener.php" angelegt mit folgendem Inhalt:
    PHP-Code:
    namespace App\EventListener;

    use 
    Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
    use 
    Contao\Form;

    #[AsHook('processFormData')]
    class ProcessFormDataListener
    {
        public function 
    __invoke(array $submittedData, array $formData, ?array $files, array $labelsForm $form): void
        
    {
            
    print_r($formData);
        }

    wie komme ich nun zur ausgabe?
    LG, Andi

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

    Standard

    Zitat Zitat von m-werk Beitrag anzeigen
    Ich hab folgendes gemacht:

    unter "system/modules" hab ich einen Ordner "formData" angelegt.
    Mach es lieber so wie in der Dokumentation beschreiben. Du brauchst keinen system/modules Ordner und keine config.php. Einfach nur die - wie in der Dokumentation beschriebene - Datei unter src/EventListener anlegen genügt (danach composer install -o ausführen).
    » sponsor me via GitHub or PayPal or Revolut

  11. #11
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Ja, genau hier liegt das Problem. Wo ist unter Contao 5.3 dieser src/ Ordner?

    Meine Ordner Struktur sieht wie folgt aus:

    Code:
    contao
        assets
        bin
        contao-manager
        files
        system
            cache
            config
            logs
            modules
            themes
            tmp
        templates
        var
        vendor
        web
    LG, Andi

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

    Standard

    Zitat Zitat von m-werk Beitrag anzeigen
    Wo ist unter Contao 5.3 dieser src/ Ordner?
    Das legst du dir immer selbst an (genau so wie andere Ordner und Dateien, die ggf. fehlen).
    Geändert von Spooky (28.03.2024 um 14:25 Uhr)
    » sponsor me via GitHub or PayPal or Revolut

  13. #13
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das legst du dir immer selbst an (genau so wie andere Ordner, die ggf. fehlen).
    Ok, unter system oder im Hauptverzeichnis?
    LG, Andi

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

    Standard

    Alle Pfadangaben beziehen sich immer auf das Installationsverzeichnis.
    » sponsor me via GitHub or PayPal or Revolut

  15. #15
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Boah, wieder was gelernt. Danke. Das funktioniert jetzt mal. Hab aber nur noch das Problem, sobald ich auf Senden klicke, wird kurz eine weise Seite angezeigt mit den Arrays und dann verschwindet diese wieder und springt auf die Formularseite um. Ich hab KEINE weiterleitungsseite angegeben.
    Wie kann ich jetzt noch die Arrays sehen, so dass ich mir einen Link basteln kann?
    LG, Andi

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

    Standard

    Nutze dd() ("dump and die")
    » sponsor me via GitHub or PayPal or Revolut

  17. #17
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Was meinst du damit? Was ist dd?
    LG, Andi

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

    Standard

    Eine Funktion . Nimm dd() statt print_r().

    Siehe auch https://symfony.com/doc/current/comp...-dump-function
    » sponsor me via GitHub or PayPal or Revolut

  19. #19
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Ja, hab es umgestellt, aber das ändert nichts daran, dass nach dem senden Kurz das Array ersichtlich ist und dann aber wieder sofort die Formular-Seite
    LG, Andi

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

    Standard

    Mit dd() solltest du nur die Debug Ausgabe sehen und sonst (fast) nichts.
    » sponsor me via GitHub or PayPal or Revolut

  21. #21
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Hallo, danke für den Tipp mit dd(). Hatte mich nur vertan. Funktioniert prima.

    Ich hab jetzt nur noch eine Frage: Es funktioniert alles einwandfrei, auch der automatische aufruf der Seite mit dem Link. Was ich aber gerne hätte, wäre dass der Link in einem target="_blank" geöffnet wird. Das hab ich hier nicht hinbekommen.
    Ich könnte zwar ein echo mit <a href= einbauen, aber der Link sollte ja automatisch auf einer neuen Seite geöffnet werden. Hier wird er auf der gleichen Seite geöffnet:
    PHP-Code:
    $link 'https://www.easy-booking.at/'.$database.'/'.$arrivalDate.'/'.$departureDate;
            
    header("Location: $link");
            exit; 
    Ich möchte kein javascript einbauen wenn es geht (hatte ich schon, hat nicht funktioniert)
    LG, Andi

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

    Standard

    Dazu machst du dir ein angepasstes form_wrapper Template mit target="_blank" auf <form>
    » sponsor me via GitHub or PayPal or Revolut

  23. #23
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.459

    Standard

    Danke für die Info. Ich musse es aber in der form_inline hinzufügen. Das funktioniert jetzt.

    Danke nochmals.
    LG, Andi

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
  •