Ergebnis 1 bis 17 von 17

Thema: Formular an Lightbox weiterleiten

  1. #1
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard Formular an Lightbox weiterleiten

    Hallo,

    ich habe ein Formular, welches die erfassten Daten an eine externe Seite sendet. Diese soll sich in einer Lightbox öffnen. Es gibt zwar schon mehr oder weniger ähnlich Threads dazu, aber ein richtige Lösung dazu habe ich nicht gefunden.
    Kann mir jemand weiterhelfen?

    Gruß,
    Ignatz

  2. #2
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Ich mach das folgendermaßen:

    1. Seite anlegen des Seitentyps "Externe Weiterleitung"
    2. Als Link-Url InsertTag auf gewünschte Seite + Hashtag {{link_url::2}}#popup. Falls die Seite dynamisch sein soll geht auch {{env::referer}}#popup
    3. Weiterleitung des Formulars auf die angelegte Seite einstellen
    4. Auf der Seite ID 2 gibt es ein Javascript, dass auf #popup reagiert und die Lightbox öffnet
    5. Optional: Das Script kann im Browser die Url zurücksetzen (#popup) entfernen


    Und als extra noch ein Beispiel-Script für JQuery:

    Code:
    $(document).ready(function() {
        if(window.location.hash == '#popup') {
            window.location.hash = '';
    
            if ("pushState" in history) {
                history.pushState("", document.title, location.pathname + location.search);
            }
    
            // open your lightbox here
        }
    }
    Geändert von webstar (03.12.2014 um 08:57 Uhr)

  3. #3
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Danke webstar,

    leider kann ich dir nicht ganz folgen. Wenn ich das richtig verstehe, dann öffnet sich ja bereits das Formular in der Lightbox, oder?! Ich möchte aber, dass sich nach Absenden des Formulars die Ergebnisseite in der Lightbox öffnet. Oder habe ich dich da missverstanden?

    Gruß,
    Ignatz

  4. #4
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Ignatz Beitrag anzeigen
    Danke webstar,

    leider kann ich dir nicht ganz folgen. Wenn ich das richtig verstehe, dann öffnet sich ja bereits das Formular in der Lightbox, oder?! Ich möchte aber, dass sich nach Absenden des Formulars die Ergebnisseite in der Lightbox öffnet. Oder habe ich dich da missverstanden?

    Gruß,
    Ignatz
    Nein, das Formular kommt ganz normal auf eine Seite. Erst die Weiterleitungsseite des Formulars (normalerweise die Dankesseite) öffnet dann die Lightbox durch den oben beschriebenen Weg.

  5. #5
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.497

    Standard

    @Webstar!

    Wenn ich{{env::referer}}#popup in das Feld für Weiterleitungsziel einsetze, erhalte ich immer einen Fehler, da Contao irgendwie das "http://linkzurseite/tl/%7B%7Benv::host%7D%7D#popup" daraus bastelt. Ich muss aber gestehen, dass ich eine Ältere Version von contao einsetze... ist dir da ein Update bekannt, wo das Problem behoben wurde?

  6. #6
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Acta Beitrag anzeigen
    @Webstar!

    Wenn ich{{env::referer}}#popup in das Feld für Weiterleitungsziel einsetze, erhalte ich immer einen Fehler, da Contao irgendwie das "http://linkzurseite/tl/%7B%7Benv::host%7D%7D#popup" daraus bastelt. Ich muss aber gestehen, dass ich eine Ältere Version von contao einsetze... ist dir da ein Update bekannt, wo das Problem behoben wurde?
    Kann gut sein, dass Contao in älteren Versionen die Insert-Tags nicht auswertet im Seitenname. Du kannst natürlich auch einen feste Url angeben einer Zielseite.

  7. #7
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.497

    Standard

    Danke... Hast du noch einen Tipp für folgendes Problem:

    Code:
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    window.addEvent('domready', function() {
      var u = new URI(document.URL);
      if (u == 'http://meinlink/tl/index.php/merkzettel.html#popup') {
          Mediabox.open('#mb_popup', 'Favoriten', '180 40');
      }
    });
    //--><!]]>
    </script>
    Wenn ich das hier verwende, funktioniert alles wie gewollt.

    Mein Problem ist aber, dass es auch über http://meinezweiteDomain/tl/index.ph...tel.html#popup funktionieren soll.

    Wenn ich nur "/merkzettel#popup" eintrage, führt das dazu, dass gar keine Mediabox geladen wird.

  8. #8
    Alter Contao-Hase Avatar von Supermann
    Registriert seit
    17.02.2010.
    Ort
    Löhne
    Beiträge
    1.293

    Standard

    Hallo,

    ich bin auch gerade an so einer Sache am basteln, allerdings scheint mir das hier besser zu sein. ich habe den oben beschriebenen Weg auch ausgeführt, allerdings bekomme ich keine Lightbox geöffnet. Jedenfalls nicht mit meinem Jquery Code.

    Wenn es euch nichts ausmacht könntet Ihr vielleicht euren Weg noch einmal genau darstellen.

  9. #9
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.497

    Standard

    Also mal in kürze mein Weg:

    1. 2 Seiten angelegt:

    Seite 1 ist das Tatsächliche Ziel des Formulars
    Seite 2 ist vom Typ Weiterleitung und ergänzt mir #popup
    Als Adresse steht dort index.php/namedeinererstenseite.html#popup

    2. Im Formular als Weiterleitungsziel Seite Nr. 2 ausgewählt

    3. Im Layout folgenden Code ergänzt:

    Code:
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    window.addEvent('domready', function() {
      var u = new URI(document.URL);
      if (u == 'http://euredomain/tl/index.php/namedeinererstenseite.html#popup') {
          Mediabox.open('#mb_popup', 'Favoriten', '180 40');
      }
    });
    //--><!]]>
    </script>
    4. Auf deiner Ersten Seite ein Inhaltselement hinterlegen mit der CSS-ID: #mb_popup. Dort den von dir gewünschten INhalt hinterlegen.
    5. Im CSS für #mb_popup ein Display none setzen

    Das wars denke ich!

  10. #10
    Alter Contao-Hase Avatar von Supermann
    Registriert seit
    17.02.2010.
    Ort
    Löhne
    Beiträge
    1.293

    Standard

    Hallo,

    danke Dir werde ich so ausprobieren und mich melden...

  11. #11
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Acta Beitrag anzeigen
    Danke... Hast du noch einen Tipp für folgendes Problem:

    Mein Problem ist aber, dass es auch über http://meinezweiteDomain/tl/index.ph...tel.html#popup funktionieren soll.

    Wenn ich nur "/merkzettel#popup" eintrage, führt das dazu, dass gar keine Mediabox geladen wird.
    Warum überprüfst du nicht einfach nur den Hash, wie oben vorgeschlagen:

    HTML-Code:
    if(window.location.hash == '#popup') {

  12. #12
    Alter Contao-Hase Avatar von Supermann
    Registriert seit
    17.02.2010.
    Ort
    Löhne
    Beiträge
    1.293

    Standard

    Hallo,

    das hatte ich auch schon überlegt... und probiert. Aber ich bekomme das mit Deinem Code nicht hin... jedenfalls bekomme ich den restlichen Code zum öffnen der Lightbox nicht dort rein. Hast Du vielleicht einmal den kompletten Code, incl. dem Lightbox aufruf?

  13. #13
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.497

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    Warum überprüfst du nicht einfach nur den Hash, wie oben vorgeschlagen:

    HTML-Code:
    if(window.location.hash == '#popup') {
    Weil ich zu Blöd war :-)

    SUPER!

    Sieht nun so aus!
    Code:
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    window.addEvent('domready', function() {
      var u = new URI(document.URL);
      if (window.location.hash == '#popup')  {
          Mediabox.open('#mb_popup', 'Favoriten', '180 40');
      }
    });
    //--><!]]>
    </script>

  14. #14
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Supermann Beitrag anzeigen
    Hallo,

    das hatte ich auch schon überlegt... und probiert. Aber ich bekomme das mit Deinem Code nicht hin... jedenfalls bekomme ich den restlichen Code zum öffnen der Lightbox nicht dort rein. Hast Du vielleicht einmal den kompletten Code, incl. dem Lightbox aufruf?
    Kann ich dir schon geben, aber wird dir nur weiterhelfen, wenn du dieselbe Lightbox Variante verwendest. Dies ist z.B. auf Bootstraps Modal ausgelegt. Wie du sieht, nur eine Zeile mehr als was ich eh schon gepostet habe.

    Code:
    $(document).ready(function() {
        if(window.location.hash == '#thankYou') {
            window.location.hash = '';
    
            if ("pushState" in history) {
                history.pushState("", document.title, location.pathname + location.search);
            }
    
            $('#thankYou').modal('show');
        }
    });

  15. #15
    Alter Contao-Hase Avatar von Supermann
    Registriert seit
    17.02.2010.
    Ort
    Löhne
    Beiträge
    1.293

    Standard

    Hallo,

    jetzt klappt es auch bei mir mit eurem Script, jedenfalls geht das Popup richtig auf. Ich habe nur das Problem, das wenn ich das Popup schließe eine leere Seite habe.

    HTML-Code:
    https://www.digiphotopro.de/market/detail/image/united-states-nyc-manhattan#popup
    Folgende Idee steckt dahinter: Ich möchte das sich die Detailansicht so wie ich das jetzt schon mit eurem Script wie in dem Link ersichtlich öffnet, schließt man dieses Popup, soll man wieder auf der Übersichtsichstseite von der Link geöffnet wurde sein.

    Ich habe dafür auf der Detailseite den gesammten Content in einen DIV mir der ID popup gelegt und den Code zum öffnen des Popups in das Template eingesetzt. Jetzt könnte ich alls Links die von den Übersichtsseiten kommen durch den hash #popup erweitern, so wird jedes Bild welches aufgerufen wird in dem Popup angezeigt. Das Problem was ich jetzt allerdings noch habe ist die leere Deteilseite wenn ich das Popup schließe.

    Gibt es evtl. eine Möglichkeit genau dieses Popup auch von der Übersichtsseite aufzurufen? oder hat evtl. jemand eine andere Lösung für mein Problem. Vorher hatte ich das ganz normal mit der Lightbox gelöst, allerdings war das dann nicht so optimal wenn die Aufrufe der Seite von außerhalb kamen, dann wurde die Detailseite ja ohne Lightbox angezeigt, so mit eurem Script wird ja die Lightbox erzwungen und genauso wollte ich das eigentlich auch haben.

    EDIT: Habe gerade rausgefunden das beim Schließen der Lightbox man ganz normal auf der Detailseite landet. Das möchte ich aber nicht, sondern beim schließen der Box möchte ich gerne wieder dahin wo ich hergekommen bin. Gibt es evtl. eine Möglichkeit, das ich beim schließen der Lightbox einfache eine Seite zurück geleitet werde?


    PS. Vieleich kennt jemand ja sogar eine einfachere Variannte wie ich die Detailseite dazu zwingen kann, bei jedem Aufruf als Lightbox zu öffnen.
    Geändert von Supermann (17.02.2015 um 15:28 Uhr)

  16. #16
    Contao-Nutzer Avatar von pix
    Registriert seit
    23.06.2009.
    Beiträge
    110

    Standard

    Funktioniert soweit. Aber die weiße Seite nachdem man die Box schließt geht gar nicht. Hat jemand eine Idee?

  17. #17
    Contao-Nutzer
    Registriert seit
    12.09.2012.
    Ort
    9606 Bütschwil
    Beiträge
    28

    Standard Genau andersherum

    Der Treat ist schon fast ein Jahr alt.
    Ich habe diesbezüglich trotzdem eine Frage:
    Bei mir ist dies genau umgekehrt: Das Formular befindet sich in einer Lightbox. Nun möchte ich, das die «Danke-Seite» im normalen Frame aufgerufen wird.
    Zur Zeit öffnet sich die «Dankeseite» in der Lightbox.

    Hat jemand da:

    1) eine «quick & dirty» Lösung und
    2) eine saubere Lösung parat?

    Vielen Dank schoneinmal im Voraus.

    Gruss

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
  •