#  > Desenvolvimento >  > Linguagens de Programação >  >  Como colocar dados no botão DROP DOWN

## rbbahia

Olá,

Possuo uma variável no PHP que contém dados de um campo do banco de dados SQL, quero que esses valores entrem em um combo box, algum dos colegas pode me dizer qual o código para fazer isso?


Obrigado

----------


## rcfweb

Bom dia,

Existem formas usando jquery, ajax e a forma mais "tosca" fazendo um submit (eu uso sempre esse meio).

Digamos que na abertura dá página voce queira alimentar esse combo, dai é mais simples não precisa de fazer o submit porque o select é dado no início da página e carrega o combo.
No caso de você depender do resultado de uma combo antecessora dai sim é utilizado o submit.

Bom mas o esquema é assim você faz o select e roda um while dai com esse while você cria as linhas de <option> do select. Desse jeito.

<html>
<head>
<title>Teste</title>
</head>
<body>
<form action="" method="post">
<select name="comboDados">
<option value="">Selecione...</option>
<?php
// Conecto no banco.
$conexao = mysql_connect("localhost", "usuario", "senha") or die ('Erro na conexão.');
mysql_select_db("banco", $conexao)

// Faço o select na tabela.
$sql="SELECT idDados, nomeDados FROM tabela Dados ORDER BY nomeDados";
$qry=mysql_query($sql,$conexao);
// faço um laço em que percorro todas linhas da consulta que acabo de fazer.
while ($dados=mysql_fetch_array($qry)) {
// após um submit eu quero que o combo volte a mostrar o que eu selecionei, para isso eu testo se 
// a variável do array post alimentado na posição comboDados é igual a variável que está sendo lida
// pela tabela nesse momento.
// Explicação tosca. hehehe Mas acho que dá prá entender.
// Quando selecionamos algo no combo é adicionado uma palavra selected na linha do option e é isso que eu faço.
$selecionado=$dados['idDados']==$_POST['comboDados']?" selected":null; 

// Aqui é onde se adiciona cada registro da tabela em um novo item do combo.
// Lembrando que o PHP primeiro é "interpretado", gera-se o HTML e exibe.
// Então o que é feito é que o php está criando os itens no combo.
echo "<option value=\"$dados[idDados]\" $selecionado>$dados[nomeDados]</option>";

}
?>
</select>
</form>
</body>
</html>

Espero ter ajudado.

At,

Rodrigo.

----------


## rbbahia

Olá Rodrigo,

Obrigado funcionou sim,agora me responde outra dúvida, quando eu clicar no botão enviar do método post o que vai para frente ?

----------


## rcfweb

Cara não entendi.

No caso de clicar no combo e imediatamente exibir algo você tem que usar javascript e no combo (que no html se chama select) você tem que usar o atritibuto label e com o javascrit consegui exibir.

Se eu entendi é assim:
Você carrega os dados no combo com o select (SQL),
Quando clicar em algum item do combo ele exibe o nome associado,
desse modo a linha do item no combo fica assim:
<option value="324" label="Nome associado">Nome Descritivo</option>
Dai na definição do combo (select) você vai chamar uma função que "leia" o label e mostre em outro campo.
vai ficar mais ou menos assim:
<select name="comboDados" onchange="funcao_mostra_nome">

procure no google sobre as seguintes variáveis : getelementby label select option
é javascript eu até tenho pronto aqui em algum lugar um exemplo mas não to no trabalho e preciso de um tempinho prá procurar, tenta ai se não consegui me avisa mais tarde eu te mando o exemplo.

At,

Rodrigo.

----------


## rbbahia

Muito obrigado Rodrigo era isso que eu queria.

----------

