2011-08-26 111 views

回答

2

如果使用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); 
+1

該代碼添加一個選項可能會導致奇怪的結果,因爲在這樣的選擇框ID值會是結果集的數字索引,所有的值都是'Array'字符串。要直接在'setMultiOptions'中使用查詢結果,您應該使用['fetchPairs'方法](http://framework.zend.com/apidoc/core/_Db_Adapter_Abstract.html#%5CZend_Db_Adapter_Abstract::fetchPairs()) – Fabio

+0

對,但我已經「修復」了這個例子。 fetchpairs更性感;) – opHASnoNAME

+0

謝謝!有用! – Nicky

1

您可以使用一個或多個Zend_Form_Element_Multi方法。如果你在表單

array(
    'id1' => 'value 1', 
    'id2' => 'value 2', 
); 

有一個數組可以使用setMultiOptions方法添加他們。如果您不是需要添加foreach循環內選項,你必須使用addMultiOption方法,在時間與

foreach ($array as $id => $value) { 
    $element->addMultiOption($id, $value); 
} 
相關問題