Durante o desenvolvimento de um tema de WordPress, resolvi fazer uma função básica em PHP para a padronização na seleção de estados brasileiros em um formulário e no seu retorno de dados no código HTML. Além do WordPress, pode ser usado em qualquer aplicação que possa utilizar a seleção de unidades federativas brasileiras.
<?php
function estadosBrasil($show, $value="", $name="estado"){
$estados = array(
'AC' => 'Acre',
'AL' => 'Alagoas',
'AP' => 'Amapá',
'AM' => 'Amazonas',
'BA' => 'Bahia',
'CE' => 'Ceará',
'DF' => 'Distrito Federal',
'ES' => 'Espírito Santo',
'GO' => 'Goiás',
'MA' => 'Maranhão',
'MT' => 'Mato Grosso',
'MS' => 'Mato Grosso do Sul',
'MG' => 'Minas Gerais',
'PA' => 'Pará',
'PB' => 'Paraíba',
'PR' => 'Paraná',
'PE' => 'Pernambuco',
'PI' => 'Piauí',
'RJ' => 'Rio de Janeiro',
'RN' => 'Rio Grande do Norte',
'RS' => 'Rio Grande do Sul',
'RO' => 'Rondônia',
'RR' => 'Roraima',
'SC' => 'Santa Catarina',
'SP' => 'São Paulo',
'SE' => 'Serigipe',
'TO' => 'Tocantins'
);
if ($show == "form") {
echo '<select name="'.$name.'" required>';
echo '<option value=""></option>';
foreach ($estados as $siglaUF => $nomeUF) {
if($siglaUF == $value){
echo '<option value="'.$siglaUF.'" selected>'.$nomeUF.'</option>';
} else {
echo '<option value="'.$siglaUF.'">'.$nomeUF.'</option>';
}
}
echo '</select>';
}
else if ($show == "reverso") {
foreach ($estados as $siglaUF => $nomeUF) {
if($value == $siglaUF) {
return $nomeUF;
}
}
}
}
?>
Ao definir a variável $show
para form
, a função imprime uma lista de seleção no formulário onde o usuário pode escolher o estado. Neste modo, é possível definir qual estado estará previamente selecionado pela variável $value
, o que é útil no caso da edição de um cadastro já existente no banco de dados, por exemplo.
Também é possível escolher um nome de controle para a lista de seleção pela variável $name
, que será usado pelo back-end após a submissão do formulário. Na função, é usado a nomenclatura da unidade federativa para a interface e a sigla para o back-end.
Já ao definir a variável $show
para reverso
, a função retorna o nome do estado a partir do valor da variável $value
, composta pela sigla da UF. Esta parte é para o retorno do nome do estado em um texto, por exemplo.
O script atualizado também está disponível no meu GitHub.