tadarank afiliados

19 setembro, 2007

geraOptions - populando selects com praticidade - PHP

Hoeeepáa

Bom, sabe toooda aquela burocracia que agente faz tooooda vez que vai gerar um select-option via PHP?

Pois é, vai parecer óbvio pra maioria dos meus leitores, mas pode ser de ajuda pra alguns: que tal reduzir esta complexidade em apenas uma funçãozinha simples pra chamar rapidamente e não ter que ficar se preocupando com executar a SQL, fazer o while do recordset, fazer o IF pra ver qual option vai ter o selected, etc??

Acredite: isto facilita pra caramba. Reduz a complexidade e o tamanho do código.

A função que gera os options. Guarde em sua biblioteca de funções:

function geraOptions($sql,$campo_valor,$campo_label,$valor_selecionado,$tabs='    '){
//by Nairon JCG - Micox - elmicox.blogspot.com - micoxjcg@yahoo.com.br - 12/01/07

    $reca = mysql_query($sql);
    $opts = "\r\n";
    if($reca){
        while($row = mysql_fetch_assoc($reca)){
        if($row[$campo_valor]==$valor_selecionado){
        $selected = "selected='selected'";
        }else{
        $selected = "";
        }
            $opts .= $tabs."    <option value='".$row[$campo_valor]."' $selected>".$row[$campo_label]."</option>\r\n";
        }
    }
    return $opts;
}

$sql - é a sql pra gerar os options
$campo_valor - o campo na sua tabela do BD que irá doar os valores para os VALUES dos options.
$campo_label - o campo na sua tabela do BD que irá doar os valores para os TEXTOS dos options.
$valor_selecionado - Se tal option tiver o value igual ao $valor_selectionado, ele ficará com selected=selected
$tabs - pra deixar seu código fonte que será gerado mais bonitim...

Exemplo de uso:

echo "<select id='estado' name='estado'>";
    echo geraOptions('SELECT * FROM estados','id_estado','nome_estado',$cod_estado_cliente,'    ');
echo "</select>";

Dúvidas?

PS.:Esta é mais uma funçãozinha que eu tinha feito e esquecido de postar. Como este blog é minha 'guardadora' de funções pessoais, esta não podia ficar de fora né? hehe

PS.2: Esta é a penúltima postagem antes de ir embora para o elmicox.com.

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

Um comentário:

  1. Cara isso me ajudou muito antes eu fazia maior gambiarra mano! vc leu meus pensamentos! vlw !

    --
    att, igor diniz
    http://www.igordiniz.com.br

    ResponderExcluir

Resultado! Concursos