Exibindo uma lista suspensa com Joomla (combo box)

From Basef
Jump to: navigation, search

Para gerar código de um combo box no Joomla, na view de um componente:

// Array com as opções do combo box
$lista = array(
   array('valor' => 4, 'nome' => 'Opção 1'),
   array('valor' => 5, 'nome' => 'Opção 2'),
   array('valor' => 6, 'nome' => 'Opção 3'),
   array('valor' => 7, 'nome' => 'Opção 4')
);
 
$selecionado = 5;
 
// Gera o código do combo box
$statusCombo = JHTML::_('select.genericlist',
   $lista, // Array com a lista de opções
   'nomeElemento', // atributo NAME e ID
   'class="minhaClasse" onChange="location.href=\'index.php\';"', // Attributos adicionais, completos
   'valor', // identificador do campo valor, dentro do array informado
   'nome', // identificador do nome da opção, dentro do array informado
   $selecionado // Valor selecionado
);
 
// Disponbiliza a variável com o código ao template
$this->assignRef('statusCombo', $statusCombo);

No template da view:

// Imprime o código do combo box
echo $this->statusCombo;

A abordagem acima produz o seguinte código HTML:

<select name="nomeElemento" id="nomeElemento" class="minhaClasse" onChange="location.href='index.php';">
   <option value="4" >Opção 1</option>
   <option value="5"  selected="selected">Opção 2</option>
   <option value="6" >Opção 3</option>
   <option value="7" >Opção 4</option>
</select>