我想要创建的是带有选择字段的表单。选择 字段中的项目是类别,我想将它们从数据库中放入addMultiOptions表单中。如何使用数据库中的数据填充addMultiOptions
希望有人能帮助我。
随着亲切的问候,
尼基
我想要创建的是带有选择字段的表单。选择 字段中的项目是类别,我想将它们从数据库中放入addMultiOptions表单中。如何使用数据库中的数据填充addMultiOptions
希望有人能帮助我。
随着亲切的问候,
尼基
如果使用Zend_Db_Table_Abstract,和Zend的形式,你可以这样做:
$result = $model->fetchAll()->toArray();
$options = array();
foreach ($result as $value) {
$options[$value['id']] = $value['whatEver'];
}
$field = new Zend_Form_Element_Select();
$field->setMultiOptions($options);
或从控制器:
$model = new My_Model_WhatEver();
$result = $model->fetchAll()->toArray();
$options = array();
foreach ($result as $value) {
$options[$value['id']] = $value['whatEver'];
}
$form = new My_Form_WhatEver();
$element = $form->getElement('whatEver');
$element->setMultiOptions($result);
您可以使用一个或多个Zend_Form_Element_Multi方法。如果你在表单
array(
'id1' => 'value 1',
'id2' => 'value 2',
);
有一个数组可以使用setMultiOptions
方法添加他们。如果您不是需要添加foreach
循环内选项,你必须使用addMultiOption
方法,在时间与
foreach ($array as $id => $value) {
$element->addMultiOption($id, $value);
}
该代码添加一个选项可能会导致奇怪的结果,因为在这样的选择框ID值会是结果集的数字索引,所有的值都是'Array'字符串。要直接在'setMultiOptions'中使用查询结果,您应该使用['fetchPairs'方法](http://framework.zend.com/apidoc/core/_Db_Adapter_Abstract.html#%5CZend_Db_Adapter_Abstract::fetchPairs()) – Fabio
对,但我已经“修复”了这个例子。 fetchpairs更性感;) – opHASnoNAME
谢谢!有用! – Nicky