Zend Framework, Form - Форма визуализируется только с одним полем - PullRequest
0 голосов
/ 13 октября 2011

Я использую ZF Form для создания форм.Я написал класс

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 ]

2 голосов
/ 13 октября 2011

Оба ваших текстовых поля называются «электронная почта» - каждое поле должно иметь уникальное имя.

0 голосов
/ 13 октября 2011

В настоящее время оба элемента формы имеют одинаковые имена.Попробуйте что-то вроде:

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