Ergebnis 1 bis 8 von 8

Thema: Erfolgsmeldung, wenn Formular gesendet

  1. #1
    Mozzarella
    Gast

    Standard Erfolgsmeldung, wenn Formular gesendet

    Hallo,

    ich habe mit dem Formular-Generator ein beliebiges Formular zusammengebaut.
    Nun sollte es doch möglich sein, im Falle, das Formular wurde erfolgreich versendet, dem Besucher eine Meldung auszugeben? Ob per Javascript oder als HTML-Code ist mir erstmal egal.

    Ich vermute, der Code gehört in das Template form.tpl, bloß wie ermittele ich, ob das Formular gesendet wurde?
    Wenn ich den Code-Bereich "if ($this->hasError) : " um ein "else" erweitere und die Nachricht dort ausgebe, erscheint sie logischerweise auch dann, wenn die Seite zum ersten Mal aufgerufen wurde, weil dann ja kein Formular- / Validierungs-Fehler vorliegt.

    Komisch eigentlich, daß man keine Möglichkeit im Formular-Generator hat, eine Standard-Meldung auszugeben.

    Danke für Tipps.

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Mozzarella,

    wäre es ausreichend für Dich, wenn bei erfolgreichem Versand eine eigene Bestätigungsseite aufgerufen wird oder muss die Meldung unbedingt auf der selben Seite angezeigt werden?
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Mozzarella
    Gast

    Standard

    Hallo xchs,

    ja wenn ich die Wahl habe, ist mir dieselbe Seite mit einer Meldung lieber, aber eine Weiterleitung wär' auch eine akzeptable Lösung.

  4. #4
    Contao-Nutzer
    Registriert seit
    23.03.2010.
    Ort
    NRW
    Beiträge
    39

    Standard

    Mit PHP wäre es möglich.

    PHP-Code:
    if (isset($_POST['Submit'])) {
    echo "Glückwunsch, du konntest ein Formular abschicken";
     } else {
    ?>
    Hier dein Formular.
    <?php
    }
    ?>
    Also, wenn der Submitbutton gedrückt wurde, dann erscheint die erste Meldung, ansonsten eben die zweite. In die Zweite Meldung "Hier dein Formular" schreibst du eben das Formular rein

    LG
    Echo

    Edit: Wenn du eine Fehlermeldung haben möchtest, wäre es eben:

    PHP-Code:
    if ((isset($_POST['Submit'])) AND $this->error == "") {
    echo "Glückwunsch, du konntest ein Formular abschicken";
     } elseif ((isset($_POST['Submit'])) AND $this->error != ""){
    echo "Entschuldige, du konntest das Formular nicht richtig ausfüllen";
    } else {
    ?>
    Hier dein Formular.
    <?php
    }
    ?>
    Beide Skripts ungetestet.
    Geändert von Echo (05.05.2010 um 09:16 Uhr)

  5. #5
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.558
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Mozzarella Beitrag anzeigen
    Hallo xchs,

    ja wenn ich die Wahl habe, ist mir dieselbe Seite mit einer Meldung lieber, aber eine Weiterleitung wär' auch eine akzeptable Lösung.
    Wenn es denn auch eine Lösung mit Weiterleitungsseite tut, dann brauchst Du eigentlich nur eine solche "Bestätigungseite" in der Seitenstruktur anlegen und diese Seite dann im Formulargenerator in den Eigenschaften Deines Formulars als "Weiterleitungsseite" auswählen. Mehr wäre da eigentlich nicht nötig!
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  6. #6
    Mozzarella
    Gast

    Standard

    Zitat Zitat von Echo Beitrag anzeigen
    Mit PHP wäre es möglich.

    PHP-Code:
    if (isset($_POST['Submit'])) {
    echo "Glückwunsch, du konntest ein Formular abschicken";
     } else {
    ?>
    Hier dein Formular.
    <?php
    }
    ?>
    Hallo echo,

    $_POST['Submit'] ist nach dem erfolgreichen Versenden des Formulars leer. Ich hab's mit var_dump() getrackt.

    Ich werd' hier nochmal die Forumsuche bemühen und ansonsten die Lösung mit der Weiterleitung umsetzen.

  7. #7
    Contao-Nutzer
    Registriert seit
    16.12.2015.
    Beiträge
    17

    Standard

    Ich weiß, das hier ist ein Uralt-Thread, aber vielleicht hilft es ja dem ein oder anderen weiter ...

    @Mozzarella
    $_POST ist tatsächlich leer – und zwar das gesamte Array. Contao speichert die Formulardaten stattdessen in der Session. Unabhängig davon ist die Prüfung auf isset($_POST['submit']) ohnehin immer false, da Contao beim Absendefeld kein name-Attribut vergibt.
    \Input::post('foo') besitzt hingegen den Wert aus dem entsprechenden Formularfeld. Diesen Wert holt sich Contao aus der Session (https://github.com/contao/core/blob/...Input.php#L779).

    Um nun trotzdem zu erfahren, ob das Formular abgeschickt wurde, verwende ich ein verstecktes Eingabefeld 'is_submit' und vergebe den Standard-Wert '1'. Geprüft wird wie folgt:
    PHP-Code:
    if (\Input::post('is_submit') === '1') {
        
    $_SESSION['FORM_DATA']['is_submit'] = '0';
        
    // Do something
    }
    // Formular 
    Wichtig ist hier, den entsprechenden Wert in der Session zu löschen/ändern. Ansonsten holt sich Contao den ursprünglichen Wert immer wieder aus der Session und \Input::post('is_submit') wäre immer wieder '1' obwohl gar keine POST-Daten neu übertragen wurden.
    Alternativ kannst du natürlich auch gleich auf $_SESSION['FORM_DATA']['is_submit'] === '1' prüfen.

  8. #8
    Contao-Fan
    Registriert seit
    26.06.2009.
    Beiträge
    266

    Standard

    Hiermit sollte die Abfrage auch funktionieren:

    PHP-Code:
    <?php if($_SERVER['REQUEST_METHOD'] == 'POST'): ?>
    // Do Something
    <?php endif; ?>

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Formular wird nicht gesendet
    Von hellwach im Forum Formulare
    Antworten: 4
    Letzter Beitrag: 15.04.2011, 09:02
  2. Antworten: 7
    Letzter Beitrag: 17.10.2010, 10:46
  3. Antworten: 5
    Letzter Beitrag: 29.03.2010, 23:41
  4. Formular wird an falsche Email-Adresse gesendet
    Von Nikolas im Forum Formulare
    Antworten: 3
    Letzter Beitrag: 29.01.2010, 17:57
  5. Kontakt formular wird nicht gesendet
    Von lightstyles im Forum Formulare
    Antworten: 17
    Letzter Beitrag: 05.09.2009, 09:34

Lesezeichen

Lesezeichen

Berechtigungen

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