zend framework 1 如何将表单字段设置为另一个 table 的 select
zend framework 1 how to set a form fiels as select from another table
我有一个链接数据库的输入表单 table 其中一个字段设置为另一个字段的下拉列表 table 换句话说,我希望字段 id_magasin
选自 table magasin
这是代码
在这种情况下,它显示 id magasin
为空
<?php
class Application_Form_Produit extends Zend_Form
{
public function init()
{
$id = new Zend_Form_Element_Hidden('id');
$id->addFilter('Int');
$nom = new Zend_Form_Element_Text('nom');
$nom->setLabel('Nom du produit')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$prix_unitaire = new Zend_Form_Element_Text('prix_unitaire');
$prix_unitaire->setLabel('prix_unitaire')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$id_magasin = new Zend_Form_Element_Select('id_magasin'.'magasin');
$id_magasin->setLabel('Magasin')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$mag = new Application_Model_DbTable_Magasin();
$data = $mag->getAll();
foreach($data as $d){
$id_magasin->addMultiOption($d->id_magasin);
$envoyer = new Zend_Form_Element_Submit('envoyer');
$envoyer->setAttrib('id','boutonenvoyer');
$this->addElements(array($id, $nom, $prix_unitaire,$id_magasin, $envoyer));
}
}
}
您需要为下拉选项提供显示值。变化:
$id_magasin->addMultiOption($d->id_magasin);
至
$id_magasin->addMultiOption($d->id_magasin, $d->id_magasin);
在select中显示id。
此外,我不知道您的 Application_Model_DbTable_Magasin 中是否有函数 "getAll()" 或者您是否正在扩展 Zend_Db_Table_Abstract 但 Zend_Db_Table_Abstract 继承的默认函数是获取全部()。也许你也必须更换它。
我有一个链接数据库的输入表单 table 其中一个字段设置为另一个字段的下拉列表 table 换句话说,我希望字段 id_magasin
选自 table magasin
这是代码
在这种情况下,它显示 id magasin
为空
<?php
class Application_Form_Produit extends Zend_Form
{
public function init()
{
$id = new Zend_Form_Element_Hidden('id');
$id->addFilter('Int');
$nom = new Zend_Form_Element_Text('nom');
$nom->setLabel('Nom du produit')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$prix_unitaire = new Zend_Form_Element_Text('prix_unitaire');
$prix_unitaire->setLabel('prix_unitaire')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$id_magasin = new Zend_Form_Element_Select('id_magasin'.'magasin');
$id_magasin->setLabel('Magasin')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$mag = new Application_Model_DbTable_Magasin();
$data = $mag->getAll();
foreach($data as $d){
$id_magasin->addMultiOption($d->id_magasin);
$envoyer = new Zend_Form_Element_Submit('envoyer');
$envoyer->setAttrib('id','boutonenvoyer');
$this->addElements(array($id, $nom, $prix_unitaire,$id_magasin, $envoyer));
}
}
}
您需要为下拉选项提供显示值。变化:
$id_magasin->addMultiOption($d->id_magasin);
至
$id_magasin->addMultiOption($d->id_magasin, $d->id_magasin);
在select中显示id。
此外,我不知道您的 Application_Model_DbTable_Magasin 中是否有函数 "getAll()" 或者您是否正在扩展 Zend_Db_Table_Abstract 但 Zend_Db_Table_Abstract 继承的默认函数是获取全部()。也许你也必须更换它。