我目前正在爲將要列出員工的magento開發一個自定義模塊。Magento Admin formfield多重選擇
我已經想出了幾乎所有的東西。我剩下的唯一東西就是選定的值將如何突出顯示。
我遇到的問題是後端。
我每個員工有兩個標籤,一個是員工數據,一個是magento分類標籤。
1名員工可以擁有1個或多個類別。
類別存儲在其中的數據庫表是非eav表。
所以我的問題是 什麼在多選選擇決定哪些值被選中?像現在一樣,只選擇一個值。
我目前正在爲將要列出員工的magento開發一個自定義模塊。Magento Admin formfield多重選擇
我已經想出了幾乎所有的東西。我剩下的唯一東西就是選定的值將如何突出顯示。
我遇到的問題是後端。
我每個員工有兩個標籤,一個是員工數據,一個是magento分類標籤。
1名員工可以擁有1個或多個類別。
類別存儲在其中的數據庫表是非eav表。
所以我的問題是 什麼在多選選擇決定哪些值被選中?像現在一樣,只選擇一個值。
我認爲你可以通過簡單地將要選擇的id的數組傳遞給爲_prepareForm()方法中的多重選擇添加的字段的'value'屬性來完成此操作。像下面這樣。
$fieldset->addField('category_id', 'multiselect', array(
'name' => 'categories[]',
'label' => Mage::helper('cms')->__('Store View'),
'title' => Mage::helper('cms')->__('Store View'),
'required' => true,
'values' => Mage::getSingleton('mymodule/mymodel')->getMymodelValuesForForm(),
'value' => array(1,7,10),
));
表單元素的ID(例如CATEGORY_ID)不能在你的模型的屬性,否則當表單值被置以$形式 - > setValues方法()以後,該屬性值將被覆蓋。
我通常會將多個選擇存儲爲逗號分隔的文本列,與大多數magento模塊處理存儲時所需的方式相似,如下所示。
在帶有多重選擇的選項卡的表單塊中,首先定義要在_prepareForm()方法中顯示的元素。然後您可以從模型中獲取值並將其設置爲表單數據。
protected function _prepareForm()
{
...
$fieldset->addField('store_id', 'multiselect', array(
'name' => 'stores[]',
'label' => Mage::helper('cms')->__('Store View'),
'title' => Mage::helper('cms')->__('Store View'),
'required' => true,
'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
));
...
if (Mage::getSingleton('adminhtml/session')->getMymodelData())
{
$data = Mage::getSingleton('adminhtml/session')->getMymodelData();
} elseif (Mage::registry('mymodel_data')) {
$data = Mage::registry('mymodel_data')->getData();
}
$data['store_id'] = isset($data['stores']) ? explode(',', $data['stores']) : array();
$form->setValues($data);
}
我通常所選擇的存儲(類別,你的情況)存儲在主模式作爲ID的文本列和逗號分隔值,因此爆炸。
在用於編輯操作的控制器中,我將正在編輯的模型放入法師註冊表中,以便我們可以在上面的步驟中加載它以及它的值。
Mage::register('mymodel_data', $model);
感謝您的回答。
這是我場的樣子:
$fieldset->addField('npn_CatID', 'multiselect', array(
'label' => Mage::helper('employeelist')->__('Kategori'),
'class' => 'required-entry',
'required' => true,
'name' => 'npn_CatID',
'values' => $data,
'value' => array(3,5)
));
npn_CatID就是類ID保存在我的分貝值。 我試圖改變名稱和字段ID,但不能得到它的工作。 當其ID字段是像上面一個值被選中,它的最後一個插入所選擇的員工
我的數據陣列看起來喜歡
array(array('value' => '1', 'label' => 'USB'), array('value' => '2', 'label' => 'Memories'))
@cpuweb你應該接受阿什利Swatton的回答這是非常好的。 –