[gelöst]Textarea wird nicht ausgelesen

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

[gelöst]Textarea wird nicht ausgelesen

Beitrag von ma2604121 » 29.03.2011, 15:19:50

Ich baue mir gerade ein einfaches Kontaktformular und bin dabei auf das Problem gestoßen, dass der Inhalt der <textarea> nicht übernommen wird.

Mein Template sieht derzeit so aus:

Code: Alles auswählen

<@controller namespace="test::pres::controller" file="contact_controller" class="contact_controller" @> 
<h1>Kontakt</h1>
<
core:addtaglib namespace="tools::form::taglib" prefix="html" class="form" />
<
html:form id="contact" name="contact" method="post">
    <fieldset>
    <form:error>
        <p class="error">
        Die markierten Felder müssen ordnungsgemäß befüllt sein.
        </p>
    </form:error>

    <label for="nick">Name</label><br/>
    <form:text id="nick" name="nick"/><br/>

    <label for="email">E-Mail</label><br/>
    <form:text id="email" name="email"/><br/>

    <label for="title">Betreff</label><br/>
    <form:text id="title" name="title"/><br/>

    <label for="content">Nachricht</label><br/>
    <form:area id="content" name="content" cols="80" rows="10"/><br/>

    <form:button name="contact" value="Abschicken"/>

    <form:addvalidator
        class
="TextLengthValidator"
        button="contact"
        control="nick|email|title|content"
    />

    <form:addvalidator
        class
="EMailValidator"
        button="contact"
        control="email"
    />
    
    
</fieldset>
</
html:form>

<
html:template name="contactSuccess">
    <p>Deine Nachricht wurde verschickt!</p>
</
html:template> 


Der Controller wie folgt:

Code: Alles auswählen

<?php
import
('tools::mail', 'mailSender');

class contact_controller extends base_controller{


    public function  transformContent() {
    $form = &$this->__getForm('contact');

    if ($form->isValid() && $form->isSent()){

        $nickControl = $form->getFormElementByName('nick');
        $emailControl = $form->getFormElementByName('email');
        $titleControl = $form->getFormElementByName('title');
        $contentControl = $form->getFormElementByName('content');

        $nick = $nickControl->getAttribute('value');
        $email = $emailControl->getAttribute('value');
        $title = $titleControl->getAttribute('value');
        $content = $contentControl->getAttribute('value');

        $mail = &$this->__getAndInitServiceObject('tools::mail', 'mailSender', 'Standard');
        $mail->setSubject($title);
        $mail->setContent($content);
        $mail->setRecipient($email, $nick);
        $mail->setBCCRecipient('example@example.org', 'Deine Seite');
        $mail->sendMail();

        $this->__getTemplate('contactSuccess')->transformOnPlace();
    }
    $form->transformOnPlace();
    }
}
?>

Beim Testen ist mir dann aufgefallen, dass alles funktioniert - bis auf die kleine Tatsache, dass der Inhalt des Textarea-Feldes nicht vorhanden ist. Die E-Mail ist folglich leer - abgesehen von den Sender-/Empfängerdaten.

Da alle Daten, außer denen des Textarea-Feldes übernommen werden, bin ich nun etwas ratlos, wieso das so ist. Kann mir jemand weiterhelfen?
Zuletzt geändert von ma2604121 am 29.03.2011, 15:59:49, insgesamt 1-mal geändert.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Textarea wird nicht ausgelesen

Beitrag von Screeze » 29.03.2011, 15:30:28

Da schon vom html-markup her, Der Inhalt eines Textareas nicht in dessen "value" Attribut gespeichert wird, kannst du folglich im APF auch nicht an den Inhalt kommen indem du eben jenes ausliest.
Der Inhalt zwischen öffnendem und Schließendem html-tag ist im apf als Content hinterlegt, deshalb musst du die funktion getContent() der area verwenden.

Steht auch hier in der Infobox:
http://adventure-php-framework.org/Seit ... l-per-Name


Grüße

Megger
Beiträge: 1233
Registriert: 04.11.2008, 10:57:37

Re: Textarea wird nicht ausgelesen

Beitrag von Megger » 29.03.2011, 15:42:03

Bei einer Textarea musst du den Content abrufen und nicht das value Attribute, da im value Attribute der Textarea nunmal nichts steht
Tutorial: Browsergame mit dem APF (Die ersten Parts handeln von Installation und Inbetriebnahme des APFs, deswegen sicherlich auch für alle Nicht-Browsergame-Programmierer interessant)

APF-Version
  • Entwicklung: 2.0
  • Produktiv: 1.15

Benutzeravatar
ma2604121
Beiträge: 349
Registriert: 24.01.2011, 23:42:18

Re: Textarea wird nicht ausgelesen

Beitrag von ma2604121 » 29.03.2011, 15:59:26

So einfach kann die Lösung manchmal sein. Danke!

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast