I have created my custom form field for a module.However, it work will but when ever i get back to the module i don't know what is the previous value or the saved value, because i didn't make it selected there.
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
jimport('joomla.form.formfield');
class JFormFieldSlidercategory extends JFormField {
protected $type = 'Slidercategory';
// getLabel() left out
public function getInput() {
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('id,title');
$query->from('#__h2mslider_categories');
$db->setQuery((string)$query);
$messages = $db->loadObjectList();
$options ='';
if ($messages)
{
foreach($messages as $message)
{
$options .= '<option value="'.$message->id.'" >'.$message->title.'</option>';
}
}
$options = '<select id="'.$this->id.'" name="'.$this->name.'">'.
'<option value="0" >--select a category--</option>'.
$options.
'</select>';
return $options ;
}
}
I need the function that return me the saved value.
You can get value using this- $this->value
Or you can try this code for select box-
// No direct access to this file
defined('_JEXEC') or die;
// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
class JFormFieldSlidercategory extends JFormFieldList
{
/**
* The field type.
*
* @var string
*/
protected $type = 'Slidercategory';
/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*/
protected function getOptions()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('id,title');
$query->from('#__h2mslider_categories');
$db->setQuery((string) $query);
return array_merge(
parent::getOptions(),
array_map(
function ($message) {
return JHtml::_('select.option', $message->id, $message->title);
},
$db->loadObjectList()
)
);
}
}