Zendフォームを使用して、データベースに基づいて同じフォームを印刷したいと考えています。
db に 3 人がいるとします。db からのプリロード値を使用して、同じフォームが 3 回出力されます。どうやってやるの?
私は次のコードを持っています:
私のクラスフォーム関数 getform では:
$form = new Zend_Form();
$form->setAction("javascript:void(0)");
include "Form/myElements.php";
$personElements = new Elements();
// Create fullname Field
$form->addElement($personElements->getMustHaveValueTextField("name", "name* :"));
// Create school Field
$form->addElement($personElements->getMustHaveValueTextField("school", "school* :"));
// Create save and remove button
$submit = $personElements->getSubmitNoDecorators("save");
$remove = $personElements->getSubmitNoDecorators("remove");
$form->addElements(array($submit, $remove));
return $form;
コントローラ:
$people = $db->people();
$this->view->people = $people;
include "Form/form.php";
$form = new form();
$this->view->form = $form->getform();
私の見解では次のように:
$i=1;
foreach($this->people as $person)
{
// data to populate
$data = array(
"name" => $person['name'],
"school" => $person['school']
);
$this->form->setName("formPerson".$i);
$this->form->populate($data);
echo $this->form;
$i++;
}
最後のフォームの値を入力するだけです。
では、実際に zend フォームを使用してそれを行うにはどうすればよいでしょうか。