2012-05-25 66 views
3

我想添加一个多选列表到我的后端组件,但我似乎无法得到它的工作。我试过搜索joomla论坛,并尝试了他们的建议,但它仍然无法正常工作。joomla 2.5保存多个选择列表?

这里是我做了什么:

/models/fields/categories.php

foreach ($result as $item) { 
    $options[] = JHtml::_('select.option', $item->id, $item->title); 
}; 
$drawField = ''; 
$drawField .= '<select name="'.$this->name.'" id="'.$this->name.'" class="inputbox" size="10" multiple="multiple">'; 
$drawField .= JHtml::_('select.options', $options, 'value', 'text', $strVal, true); 
$drawField .= '</select>'; 
return $drawField; 

/models/forms/edit.xml

<field name="catid" type="categories" multiple="true" size="40" class="inputbox" label="COM_PRODUCTS_FORM_LBL_EDIT_CATID" description="COM_PRODUCTS_FORM_DESC_EDIT_CATID" required="true" filter="safehtml" /> 

/模型/编辑。 php

protected function loadFormData() 
{ 
    $data = JFactory::getApplication()->getUserState('com_products.edit.edit.data', array()); 
    if (empty($data)) { 
     $data = $this->getItem(); 
     $data->catid = explode(',',$data->catid); 
    } 
return $data; 
} 

/tables/edit.php

public function check() { 
    if (property_exists($this, 'ordering') && $this->id == 0) { 
     $this->ordering = self::getNextOrder(); 
    } 
    $this->catid = implode(',',$this->catid); 
return parent::check(); 
} 

它将字段catid保存为“数组”在后端。然而,当我手动输入143,148作为字段值时,它不会突出显示这些字段,所以显然我的内爆/爆炸无效。任何帮助将不胜感激!

谢谢:)

回答

4

好想通了..这个问题是这样的:过滤器=“safehtml”在XML文件中其他人是否具有同样的事情的问题......现在一切都很好:)