Zend Framework,Form - Form渲染只有一个字段

时间:2011-10-13 10:33:57

标签: php forms zend-framework frameworks zend-form

我正在使用ZF表单生成表单。 我写了一堂课

class Form_Client extends Zend_Form 
{ 
    public function init() 
    { 
        $this->setMethod('post');

        $name = $this->createElement('text', 'email',array('label'=>'Name','size'=>'50')); 
        $name->setErrorMessages(array('Field is required'));
        $name->setRequired(TRUE);       
        $this->addElement($name);

        $contact_person = $this->createElement('text', 'email',array('label'=>'Contact person','size'=>'50')); 
        $contact_person->setErrorMessages(array('Field is required'));      
        $contact_person->setRequired(TRUE);                 
        $this->addElement($contact_person);

        // add element: submit button
        $submit = $this->createElement('submit', 'submit', array('label' => 'Save'));
        //$submit->setDecorators(array('ViewHelper')); 
        $this->addElement($submit); 

        $btn = $this->createElement('button', 'cancel', array('label' => 'Cancel'));
        $btn->setAttribs(array('onClick'=>'window.location="/system/login"','style'=>''));
        //$btn->setDecorators(array('ViewHelper')); 
        $this->addElement($btn); 
    }
}

在我的控制器中我有

public function editAction()
{
    $frmClient = new Form_Client();
    $frmClient->setAction('edit');

    /*submit*/
    if ($this->_request->isPost()) { 
            if ($frmClient->isValid($_POST)) { 
                $data = $frmClient->getValues();
            }
    }

    $this->view->form = $frmClient;
    $this->_helper->viewRenderer('form');
}

在我的视图中有

<?php echo $this->form; ?>

问题是表单渲染只有第一个输入字段。 你知道那有什么问题吗?

谢谢, 雅各布

2 个答案:

答案 0 :(得分:2)

您的两个文本字段都称为“电子邮件” - 每个字段都必须具有唯一的名称。

答案 1 :(得分:0)

目前,两个表单元素具有相同的名称。尝试类似:

[..]
$name = $this->createElement('text', 'name',array('label'=>'Name','size'=>'50'));
[..]
$contact_person = $this->createElement('text', 'contact_person',array('label'=>'Contact person','size'=>'50'));
[..]