0
public function emailAction()
{

    $form = new Application_Form_Email();
    $form->submit->setLabel('Send Email!');
    $this->view->form = $form;

    if ($this->getRequest()->isPost()) {    //check if add button is click
        echo "hi";
        $formData = $this->getRequest()->getPost('email');
        var_dump($formData);
        if ($form->isValid($formData)) { //check if form is valid 

            $emailaddress = $this->getRequest()->getPost();
            //$emailaddress = $this->getPost();
            var_dump($emailaddress);
            $db = new Application_Model_DbTable_Email();
            $db->sendEmail($emailaddress);



        } 
    }
}

こんにちは、「メール」の値を送信しようとしています。私がテストしたとき、$this->getRequest()->getPost() にエラーがあることを意味する場合、if ブロックは読み取られません。ifブロックが機能しない原因は他にありません。だから私は自分のフォームをチェックしました:

public function init()
{
    $this->setName('memberdetail'); //memberdetail table from database

    /*$userid = new Zend_Form_Element_Hidden('userid'); //hide userid 
    $userid->addFilter('Int');

    $role = new Zend_Form_Element_Hidden('role');   //hide role
    $role -> setValue('Member');*/

    $email = new Zend_Form_Element_Text ('email');
    $email->setLabel('Email')
    ->setRequired(true)
    ->addFilter('StripTags')
    ->addFilter('StringTrim')
    ->setAttrib('COLS', '60')
    ->setAttrib('ROWS', '2')
    ->addValidator('NotEmpty')
    ->addValidator('EmailAddress');

    $submit = new Zend_Form_Element_Submit('submit');


    //remember to add the declare form elements to form
    $this->addElements(array($email, $submit)); 
}

問題は送信ボタンにありますか? 「メール」の値が返されないのはなぜですか?

4

1 に答える 1

0

コードを次のように置き換えます。

public function emailAction()
{

$form = new Application_Form_Email(array(
'method' => 'POST'));
$form->submit->setLabel('Send Email!');
$this->view->form = $form;

if ($this->getRequest()->isPost()) {    //check if add button is click
    echo "hi";
    $formData = $this->getRequest()->getPost('email');
    var_dump($formData);
    if ($form->isValid($formData)) { //check if form is valid 

        $emailaddress = $this->getRequest()->getPost();
        //$emailaddress = $this->getPost();
        var_dump($emailaddress);
        $db = new Application_Model_DbTable_Email();
        $db->sendEmail($emailaddress);



    } 
}
}
于 2012-08-13T08:17:37.227 に答える