我有一张表格:
$houserent = new Zend_Form_Element_Text('houserent');
$houserent ->setLabel('House Rent :');
$this ->addElement($houserent);
$tax = new Zend_Form_Element_Text('tax');
$siteName ->setLabel('Tax :');
$this ->addElement($tax);
$internet = new Zend_Form_Element_Text('internet');
$internet->setLabel('Internet :');
$this ->addElement($internet);
我的数据表“test”是
id name value
1 house rent 100
2 tax 10
3 internet 10
我想使用来自数据库表的上述数据填充表单。但我不知道如何做到这一点。请帮我。感谢
答案 0 :(得分:1)
您可以覆盖表单中的填充功能。
public function populate($data)
{
foreach($data as $field => $value)
{
$this->{$field}->setValue($value);
}
return $this;
}
其中$ data是name =>的关联数组。值。
[编辑]
所以你现在就形成了:
<?php
class Form_Admin_Settings_Add extends Zend_Form
{
public function init()
{
$houserent = new Zend_Form_Element_Text('houserent');
$houserent->setLabel('House Rent :');
$this->addElement($houserent);
$tax = new Zend_Form_Element_Text('tax');
$siteName->setLabel('Tax :');
$this->addElement($tax);
$internet = new Zend_Form_Element_Text('internet');
$internet->setLabel('Internet :');
$this->addElement($internet);
}
public function populate($data)
{
foreach($data as $field => $value)
{
$this->{$field}->setValue($value);
}
return $this;
}
}
在您的控制器中:
<?php
//instantiate form and model
$form = new Form_Admin_Settings_Add();
$model = new Model_Test();
//get results
$results = $model->fetchAll()->toArray();
$data = array();
//put results into our data array as name => value
foreach($results as $r)
{
$data[$r['name']] = $r['value'];
}
//populate our form
$form->populate(data);
echo $form;
答案 1 :(得分:0)
尝试这样的事情:
class Form extends Zend_Form {
public funcition Form(){
$houserent = new Zend_Form_Element_Text('houserent');
$houserent->setLabel('House Rent :')
->setValue($this->_Data['houserent']);
$this->addElement($houserent);
}
public function setData($Data){
$this->_Data = $Data;
return $this;
}
}