我正在使用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; ?>
问题是表单渲染只有第一个输入字段。 你知道那有什么问题吗?
谢谢, 雅各布
答案 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'));
[..]