2012-08-05 120 views
-1

我閱讀了很多關於如何在zend框架中的表格中創建表單的教程,但不幸的是他們中沒有人爲我工作,而且我一直花費這麼多時間,因此我決定詢問你們。 這是我的代碼:Zend框架中的表格

public $elementDecorators = array(
     'ViewHelper', 
     'Errors', 
     array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'col2')), 
     array('Label', array('tag' => 'td','class'=>'taR')), 
     array(array('row' => 'HtmlTag'), array('tag' => 'tr','class' => 'rowA')), 
); 

public function init() 
{ 

    $this->setName('message'); 

    $message_id = new Zend_Form_Element_Hidden('message_id'); 
    $message_id->addFilter('Int'); 

    $message_content = new Zend_Form_Element_Text('message_content'); 
    $message_content->setLabel('Message') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim') 
    ->addValidator('NotEmpty') 
    ->setAttrib('class', 'frmtb'); 
    $username = new Zend_Form_Element_Text('username'); 
    $username->setLabel('Name') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim') 
    ->addValidator('NotEmpty') 
    ->setAttrib('class', 'frmtb'); 

    $submit = new Zend_Form_Element_Submit('submit'); 
    $submit->setAttrib('id', 'submitbutton') 
    ->setAttrib('class', 'frmbtn'); 


    //$this->addElements(array($message_id, $username,$message_content, $submit)); 
    $this->addElement($username,'username',array('decorators' => $this->elementDecorators)); 
    $this->addElement($message_content,'message_content',array('decorators' => $this->elementDecorators)); 
    $this->addElement($submit,'submit',array('decorators' => $this->elementDecorators)); 
} 

你能告訴我我做錯了什麼嗎?

回答

1

好吧,所以我很幸運地找到我的答案後,我發佈了這個問題。 This question about Zend form decorators真的很有幫助。

我的代碼現在看起來像這樣:

public function init() 
{ 


    $this->setDecorators(array(
      'FormElements', 
      array('HtmlTag',array('tag'=>'table')), 
      'Form' 
    )); 

    $this->setName('message'); 

    $message_id = new Zend_Form_Element_Hidden('message_id'); 
    $message_id->addFilter('Int'); 

    $message_content = new Zend_Form_Element_Text('message_content'); 
    $message_content->setLabel('Message') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim') 
    ->addValidator('NotEmpty') 
    ->setAttrib('class', 'frmtb'); 

    $message_content->setDecorators(array(
      'ViewHelper', 
      'Errors', 
      array(array('data'=>'HtmlTag'), 
        array('tag'=>'td','class'=>'element')), 
      array('Label',array('tag'=>'td')), 
      array(array('row'=>'HtmlTag'),array('tag'=>'tr')), 

    )); 

    $username = new Zend_Form_Element_Text('username'); 
    $username->setLabel('Name') 
    ->setRequired(true) 
    ->addFilter('StripTags') 
    ->addFilter('StringTrim') 
    ->addValidator('NotEmpty') 
    ->setAttrib('class', 'frmtb'); 

    $username->setDecorators(array(
      'ViewHelper', 
      'Errors', 
      array(array('data'=>'HtmlTag'), 
        array('tag'=>'td','class'=>'element')), 
      array('Label',array('tag'=>'td')), 
      array(array('row'=>'HtmlTag'),array('tag'=>'tr')), 

    )); 

    $submit = new Zend_Form_Element_Submit('submit'); 
    $submit->setAttrib('id', 'submitbutton') 
    ->setAttrib('class', 'frmbtn'); 

    $submit->setDecorators(array(
      'ViewHelper', 
      'Errors', 
      array(array('data'=>'HtmlTag'), 
        array('tag'=>'td','class'=>'element')), 
      array('Label',array('tag'=>'td')), 
      array(array('row'=>'HtmlTag'),array('tag'=>'tr')), 

    )); 


    $this->addElements(array($message_id, $username,$message_content, $submit)); 
}