表格内的zend表单元素

时间:2014-03-06 12:54:22

标签: php html zend-framework zend-form

我正在寻找一种方法,我可以在表格中添加我的zend表单元素,我尝试了下面的方法,但它不起作用:我希望这个元素位于它下面的表格中。下面的示例图片

 $name2 = new Zend_Form_Element_Text('search');
 $name2->setLabel('Search Enterprise Name:');       
 $name2->addValidator('NotEmpty')       
            ->setDecorators(array( 
                        'FormElements',
                        array('HtmlTag', array('tag' => 'table', 'id' => 't1')), 'Form', 
                        ));

<div class="col-md-6" style="margin-left: 0;">
<table class='spreadsheet dataTable' cellpadding='0' cellspacing='' id="t1">
<thead> 

<tr role="row">
<th>ENTER SERVICE PROVIDER USED</th>

</tr>
</thead>    
</table>
<button type="button" onclick="alert('I work!')">Click Me!</button>
</div>

enter image description here 提前致谢

2 个答案:

答案 0 :(得分:1)

如果我正确理解了问题,您可以将项目添加到视图中 以Application_Form_Toto形式声明您的项目。
在您的行动中,在视图中声明您的表单

$form = new Application_Form_Toto();
$this->view->form = $form;

在HTML(您的观点)中调用您的元素

<table>...<tr>...<td><?php echo $this->form->search;?></td>...</tr>...</table>

答案 1 :(得分:0)

如果您只想从表单文件中检索单个元素,那么

class Form_Test() {
public function init() {
    $name2 = new Zend_Form_Element_Text('search');
    $name2->setLabel('Search Enterprise Name:');       
    $name2->addValidator('NotEmpty')       
        ->setDecorators(array( 
                    'FormElements',
                    array('HtmlTag', array('tag' => 'table', 'id' => 't1')), 'Form', 
                    ));
    }
}

在控制器文件中:

$form = new Form_test();
$this->view->form = $form;

在视图文件中,您只能将单个元素称为

<table>...<tr>...<td><?php echo $this->form->getElement("search");?></td>...</tr>...</table>

此外,如果您不希望从装饰器控制您的设计,您只需在表单中调用removeDecorator()并使用此方法从视图本身调整您的设计。