Seitenübergreifende Übergabe von WE-Textarea-Inhalten (Anfängerfrage)

  • Ausgangssituation:
    Auf Seite A habe ich eine Textarea definiert:

    <we:textarea name="mailstart" wysiwyg="true" commands="bold,italic" />

    Ziel:
    Den Inhalt dieser Textarea möchte ich auf Seite B in einem Formmail-Tag verwenden:

    <we:form type="formmail" preconfirm="???">

    Meine Fragen:

    1. Auf der Ursprungsseite (Seite A):
    Welche zusätzlichen Schritte sind nötig, damit der Textarea-Inhalt seitenübergreifend verfügbar wird?

    2. Auf der Zielseite (Seite B):
    - 2a) Wie gebe ich den Inhalt in einem normalen Ausgabefeld aus? So zum Test.
    (Etwa so: `<?php echo $GLOBALS['mailstart']; ?>` oder anders?)
    - 2b) Was muss ich genau bei `preconfirm="???"` im formmail-Tag eintragen?

    Vielen Dank für eure Hilfe!

    (Alles was ich bisher mit <we:setVar to="global" nameto="mailStart" from="self" namefrom="mailStart" typefrom="text" /> und <we:var type="document" name="mailStart" /> u.ä. probiert habe, funktioniert nicht. )

  • Ich glaube du mußt genauer beschreiben, was genau das Ziel sein soll....

    Wir haben in WebEdition ja diverste Möglichkeiten Daten von a nach b zu bekommen.

    Zum einen kann man Inhalte als Dokument(enschnipsel) speichern und den einfach in eine andere Seite einbinden. Auf Vorlagenebene einfach ein we:include name=xxx und dann kann man im Edit-Mode entsprechend den Schnippsel einbinden. Bspw. Seitenmenüs, ....

    Eine andere Möglichkeit ist es Inhalte als Objekte abzulegen und diese dann in der Seite per we:object einzubinden und die Inhalte (auch Teile) entsprechend anzuzeigen. Oftmals bspw. für Ansprechpartner o.ä. genutzt.


    Die Idee etwas in global zu packen und es wäre dann auf der Folgeseite noch da, kann nicht funktionieren. Ohne Sessions gibt es keinen Zustand und jede Seite ist unabhängig. Mit jedem Seitenaufruf wird der Zustand "zurückgesetzt".

  • Danke für die Antwort.
    Ziel ist es, den Text einer Antwortmail für das Formular einer Kurs-Anfrage betreubar zu halten. Ich dachte es wäre gut, die Eingabe dafür auf eine extra Seite zu legen und dann den Text auf das Formular zu übertragen.


    Nun wenn das nicht so einfach ist, lege ich die Eingabe der Felder direkt auf das Formular. Dann kann ich die WE-Feldnamen direkt in den we:form Tag bei preconfirm und postconfirm eintragen und brauche nichts übertragen.

    <we:form type="formmail" method="get" preconfirm="mailstart" postconfirm="mailend" …>

    Aber. Wenn ich das so mache, und das Formular einzeln über einen Link von der Kurs-Detail Seite direkt aufrufe, muss ich den Kursnamen und das Datum von der Kurs-Detail Seite auf das Formular übertragen. (Oder ich lege das Formular direkt in die Kurs-Detail Seite, aber dann kann ich die Mail Texte nicht generell bearbeiten… Ups - dreht sich gearde alles.)

    Deswegen übergebe ich ich zur Zeit Kursname und Datum per URL:
    (auch nicht so ideal)

    Kurs-Detail-Seite:
    <a href="formular.php?Kursname=<we:var name="Kursname"/>&Datum=<we:input type="date" name="date-von" format="d.m.Y" /><we:ifNotEmpty name="date-bis-OK"> - <we:input type="date" name="date-bis" format="d.m.Y"/></we:ifNotEmpty>">Anfragen</a>

    Formular:
    <?php
    // URL von Kursseite an Formular: formular.php?Kursname=Workshop&Datum=08.08.2025 - 09.08.2025
    $Kursname = $_GET["Kursname"]; // Liest den Wert des Parameters "Kursname" aus
    $Datum = $_GET["Datum"]; // Liest den Wert des Parameters "Datum" aus ?>

    Ihre Anfrage: <?php echo htmlspecialchars($Kursname); ?>, <?php echo htmlspecialchars($Datum); ?>

    <we:form type="formmail" …/>

    <!-- Versteckte Felder -->
    <input type="hidden" id="Kursname" name="Kursname" value="<?php echo htmlspecialchars($Kursname); ?>">
    <input type="hidden" id="Datum" name="Datum" value="<?php echo htmlspecialchars($Datum); ?>">

    Frage: Gibt es noch eine andere Möglichkeit Kursname und Datum von der Kurs-Detailseite an das Formular zu übertragen?

  • HI Finn. Danke für den Vorschlag.

    Ich mache es jetzt folgendermaßen:

    1. die Text-Eingabe-Felder für preconfirm="mailstart" und postconfirm="mailend" im <we:form> Tag des Formulars lege ich in die Formular-Seite selber. Dann brauche ich die Namen im <we:form> Tag nur eintragen = 'mailstart' und 'mailend'. Dann muss ich diese Felder nicht auf eine andere Art übertragen.

    2. Dann, um den Namen des Kurses und das Kurs-Datum (von der Kurs-Detail Seite) in das Formular zubekommen, erzeuge ich auf der Kurs-Detail Seite einen Button:

    Button auf der Kurs-Detail Seite:
    <we:form method="post" action="/formular.php">
     <input type="hidden" name="Kursname" value="<we:var name="Kursname"/>">
     <input type="hidden" name="Datum" value="<we:input type="date" name="date-von" format="d.m.Y" /><we:ifNotEmpty name="date-bis-OK"> - <we:input type="date" name="date-bis" format="d.m.Y"/></we:ifNotEmpty>">
     <button type="submit" class="link-like">Angebot anfragen</button>
    </we:form>


    auf der Formular-Seite über dem <we:form> Tag:
    <?php
    $Kursname = filter_input(INPUT_POST, 'Kursname', FILTER_UNSAFE_RAW) ?? '';
    $Datum    = filter_input(INPUT_POST, 'Datum',    FILTER_UNSAFE_RAW) ?? '';
    ?>

    Um eine entsprechende Überschrift zu erzeugen:
    <strong class="overline"><?= htmlspecialchars($Datum) ?></strong>
    <h2><?= htmlspecialchars($Kursname) ?></h2>


    und auf der Formular-Seite innerhalb des <we:form> Tag, um die Daten auch in die E-Mail zu bekommen:
    <input type="hidden" name="Kursname"  value="<?= htmlspecialchars($Kursname) ?>">
    <input type="hidden" name="Datum"     value="<?= htmlspecialchars($Datum) ?>">

    Das funktioniert für mich.

  • Ja, die Lösung ist stateless und funktioniert in der Richtung ziemlich gut.

    Statt dem filter input kannst du auch ein we_base_request::string, oder ein <we:var type="post" varType="string"> nehmen - das filtert auch entsprechend.

    Man muß sich nur ggf klar sein, das die Daten manipuliert werden könnten (aber in dem Fall wäre das ja wurscht)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!