I am trying to add a list of multiple lists to my backend component, but I cannot get it to work. I tried searching the joomla forums and tried what they suggested, but it still doesn't work.
Here is what I did:
/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" />
/models/edit.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();
}
It saves the catid field as an "array" in the backend. However, when I manually insert 143,148 as the field value, it does not highlight these fields, so obviously my explode / explode is not working. Any help would be appreciated!
Thank:)
source
share