而不是我以前的viewcript,它将我的记录集显示为表:
$i=1;
foreach($this->aktermine as $termin) :
?>
<tr>
<td class="row_<?PHP echo $i % 2;?>"><?php echo $this->escape($termin->nr);?></td>
<td class="row_<?PHP echo $i % 2;?>"><?php echo $this->escape($termin->kopfnr);?></td>
<td class="row_<?PHP echo $i % 2;?>"><?php echo $this->escape($termin->datum);?></td>
<td class="row_<?PHP echo $i % 2;?>"><?php echo $this->escape($termin->zeit);?></td>
<td class="row_<?PHP echo $i % 2;?>"><?php echo $this->escape($termin->thema);?></td>
<td></td>
</tr>
<?php
$i=$i+1;
endforeach;
我在样式中构建了一个带有装饰器的表单,下一个代码段显示:
$kopfnr=$this->CreateElement('text','kopfnr')
->setAttrib('size', '5');
$kopfnr->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('data'=>'HtmlTag'), array('tag' => 'td'))
));
如何在同一时间使用表单而不是viewscript?我希望看到所有相关记录,并且可以在不离开页面的情况下添加新记录。
这是我的indexcontroller:
$form = new Application_Form_Aktermine();
$this->view->form = $form;
$logenr = $this->_getParam('nr', 0);
if ($logenr > 0) {
$aktermine=new Application_Model_DbTable_Aktermine();
$select=$aktermine->select()->where('kopfnr = ?', $logenr) ;
$this->view->aktermine = $aktermine->fetchAll($select);
}
第一步应该是:在正确的表单字段中显示所有现有记录 第二步:添加操作,不会离开页面,但如果可能,则在现有记录的末尾添加一个新行,用户可以在新的数据记录中填写新数据。
答案 0 :(得分:1)
我会使用JavaScript在表格的末尾添加一个空行,再加上AJAX,将新条目发送回控制器。