$e1 = new Zend_Form_Element_Text('e1'); $e1 ->setName('e') ->setAttrib('id', 'e1') 'options' => array('tag' => 'table', 'openOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::PREPEND) ) , ) , 'options' => array('tag' => 'tr', 'openOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::PREPEND)) ) ); $this->addElement($e1); $e2 = new Zend_Form_Element_Text('e2'); $e2 ->setName('e2') ->setAttrib('id', 'e2') 'options' => array('tag' => 'table', 'closeOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::APPEND) ) , ) , 'options' => array('tag' => 'tr', 'closeOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::APPEND)) ) ); $this->addElement($e2);
Efekt:
Jak zrobić, żeby tagi <table></table> były we właściwych miejscach, czyli jedyny pożądany efekt, to:
?
Dodam, że jeżeli zmienię kolejność dekoratorów w ten sposób:
$e1 = new Zend_Form_Element_Text('e1'); $e1 ->setName('e') ->setAttrib('id', 'e1') ) , 'options' => array('tag' => 'tr', 'openOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::PREPEND)) ) , 'options' => array('tag' => 'table', 'openOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::PREPEND) ) ); $this->addElement($e1); $e2 = new Zend_Form_Element_Text('e2'); $e2 ->setName('e2') ->setAttrib('id', 'e2') ) , 'options' => array('tag' => 'tr', 'closeOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::APPEND)) ) , 'options' => array('tag' => 'table', 'closeOnly' => true, 'placement' => Zend_Form_Decorator_Abstract::APPEND) ) ); $this->addElement($e2);
to w ogóle <table> i </table> się nie pojawią. Co robię źle ?
Właściwie chodzi mi o objęcie tabelą pewnej grupy elementów, która jest już objęta divem:
$step4 = array('el1', 'el2', 'el3', 'el4');
$add_form->addDisplayGroup($step4, 'step4');
$add_form->getDisplayGroup('step4')->addDecorator('HtmlTag', array('tag' => 'div', 'id'=>'step4'));
Próbowałem tak:
$add_form->getDisplayGroup('step4')->setDecorators( 'FormElements', 'Form' ) );
Niestety tabela nadpisuje tag <div>. Próbowałem tak:
i...
Cytat
Warning: Exception caught by form: Plugin by name 'Div' was not found in the registry;
Powyższy problem dotyczy formularza wymienionego w tym temacie
anyone

ROZWIĄZANE - hidden i label z wyłączonym dekoratorem escape