我想要創建的是帶有選擇字段的表單。選擇 字段中的項目是類別,我想將它們從數據庫中放入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