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

このようなものを試してください:

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 に答える