Olá pessoal.
No post de hoje vou publicar uma função bem interessante e prática que tem como objetivo montar uma combobox HTML(select) a partir de uma série de registros que estão armazenados no banco de dados.
Vamos à construção dessa função e depois eu explico como ela funciona e dou um exemplo de sua aplicabilidade. Crie um arquivo funcao_combo.php
1 2 3 4 5 6 7 8 9 10 | <?php function montaCombo($nome, $rs, $valor, $descricao){ echo("<select name='$nome' class='combo'>n"); echo("t<option value=''>--Selecione--</option>n"); while ($obj = mysql_fetch_object($rs)){ echo("t<option value='".$obj->$valor."' > ". $obj->$descricao." </option>n"); } echo("</select>n"); } ?> |
A função recebe como parâmetros nome, rs, valor e descricao . O nome será usado obviamente para nomear a combobox. O rs será o resultado(resource) de uma consulta SQL. O valor é o nome do atributo que será utilizado como value do select e a descricao é o nome do atributo que será utilizado para descrever a option.
Vamos supor um banco de dados com a tabela tb_cliente e os atributos idcliente e nomecliente. Agora vamos ver como seria para montar uma combo de clientes onde o código(id) seria o valor da opção selecionada e o nome seria a descrição de cada uma das opções.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php //importa o arquivo funcao_combo.php require_once('funcao_combo.php'); //Conexão com o banco de dados mysql_connect('localhost', 'root', '123321') or die ('Erro ao conectar com o servidor'); mysql_select_db('banco_clientes') or die ('Erro ao conectar com o banco de dados'); //consulta $rs = mysql_query("SELECT idcliente, nomecliente FROM tb_cliente ORDER BY nomecliente"); //chama a função montaCombo('comboClientes', $rs, 'idcliente', 'nomecliente'); ?> |
E pronto. Isso auxilia muito no cadastro onde temos atributos que são chaves estrangeiras(FK).
Só ressaltando que que a função de exemplo é voltada para conexões com bancos mysql. Mas isso pode ser facilmente ajustado para outro SGBD.
Até a próxima.
Abs.
Siga-me no twitter: @rafaelwendel
rafael tem como vc me ajudar
eu to querendo criar uma combobox e quando eu clicar um estabelecimento na combobox exibir dados na tabela.
olha codigo:
Untitled Document
$(document).redy(function(){
$(“select[name=estabelecimento]”).change(function(){
}) })
Estabelecimento
<?php
$conexao = @mysql_connect("localhost","php","2525");
$conecta_banco = mysql_select_db("php",$conexao);
$sql_select = " select fantasia from estabelecimento";
$resultado = mysql_query($sql_select);
while ($lista = mysql_fetch_array($resultado))
{
echo '’.$lista[‘fantasia’].”;
} ?>
ESTABELECIMENTO
DESCRICAO
HORA INICIO
HORA FINAL
Como pegar a opçao selecionada?
Para pegar a opção selecionada, você deverá monta a combo dentro de um form, definindo método e ação.
Depois disso, use o $_GET[‘comboClientes’] ou $_POST[‘comboClientes’] para pegar o valor selecionado.
Abs
Mesmo usando este combo não consigo puxar o dado.
Obrigado! Adaptei para o Postgre e funcionou para minha necessidade! Abraço
Olá não estou conseguindo puxar estas dados no banco! ele não está puxando dado nenhum…
Verifique sua conexao com o banco de dados e sua consulta SQL. Provavelmente está aí o erro.
Abs
Parabéns pela explicação, mas gostaria de saber de como puxaria os dados do banco de dados a partir da opção escolhida pelo próprio usuário e depois as outras opções disponíveis veriam depois, no caso, para poder alterar.
muito bom! já estou usando
Muito obrigado pela sua dicas cara me ajudou bem a fazer um formulário que queria para cadastro de visita de clientes.
Vlw abraços e sucesso.
Preciso de uma ajudinha , quando estou a cadastrar por exemplo um motorista,tenho que indicar o carro que ele ira usar atraves da matricula, nesse caso a matricula e uma entidade em outra base de dados (base de dados do carro) como faço para que isso apareça num combobox