【发布时间】:2011-11-21 23:24:20
【问题描述】:
您好 :) 我遇到了装饰器和表格的问题,这些表格将在表格中,并且在此表格中还希望有来自数据库的数据...我不知道如何做到这一点以获得类似的结构下面的东西,让我们说
<table>
<tr>
<td><?php echo array[0]['name']?>
//and here input from zend form
<td>
<select name='foo' id='bar'>
<option value='something'>Foo</option>
<option value='something2'>Foo2</option>
</select>
</td>
</tr>
</table>
当然 tr 会更多,并使用 foreach 或一些循环生成。
我有这样的事情:
<?php
class EditArticles_Form_EditArticles extends Zend_Form
{
protected $uid;
public function render()
{
/* Form Elements & Other Definitions Here ... */
$this->setName('editarticles');
$data = new EditArticles_Model_DbTable_EditArticlesModel();
$datadata = $data->GetArticlesToEdit($this->getUid()); //here is my data from db
for ($i=0;$i<count($datadata);$i++)
{
$do = new Zend_Form_Element_Select(''.$i);
$do->addMultiOption('0', 'Aktywny');
$do->addMultiOption('1', 'Nieaktywny');
$this->addElements(array($do));
}
$submit = new Zend_Form_Element_Submit('updateart');
$this->addElement($submit);
//and here are decorators for array, and i would like to have in this table also data from array containing data from database
$this->addDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'table', 'id' => 'aaaa', 'style' => 'width:500px;')), 'Form',
));
$this->setElementDecorators(array(
'ViewHelper',
array( array('data' => 'HtmlTag'), array('tag' => 'td', 'style' => 'width:200px;')),
array('Label', array('tag' => 'td')),
array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
),
//wykluczenie submita z overrida stulu
array('submit'), false);
return parent::render();
}
//setting user id for get content from db
public function setUid($uid) {
$this->uid = $uid;
return $this;
}
public function getUid() {
return $this->uid;
}
}
?>
上面代码的输出是这样的:(在红色标记的地方我想从表单中选择。在这张图片中,带有数据的表是在 phtml 中生成的另一个表,但我想生成那个表通过表单 od 只需将表单元素插入到在 phtml 视图中生成的表中)。
http://img14.imageshack.us/img14/9973/clipboard01pw.png
在这里找到了一些东西: Zend_Form: Database records in HTML table with checkboxes
但我不知道如何开始......
【问题讨论】:
标签: forms zend-framework zend-decorators