0

我有一个表格:

$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);

我的数据表“测试”是

id   name         value
1   house rent    100
2   tax            10
3   internet       10

我想使用数据库表中的上述数据填充表单。但我不知道该怎么做。请帮我。谢谢

4

2 回答 2

1

您可以覆盖表单中的填充函数。

public function populate($data)
{
  foreach($data as $field => $value)
  {
    $this->{$field}->setValue($value);
  }
  return $this;
}

其中 $data 是 name => value 的关联数组。

[编辑]

所以你现在的形式是:

<?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;
于 2012-10-16T13:34:16.267 回答
0

Try some like this:

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;
    }
}
于 2012-10-16T12:51:09.707 回答