+ Responder ao Tópico



  1. #1

    Padrão Como colocar dados no botão DROP DOWN

    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
    Última edição por rbbahia; 07-04-2009 às 21:31.

  2. #2

    Padrão

    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.

  3. #3

    Padrão

    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 ?
    Última edição por rbbahia; 08-04-2009 às 15:07.

  4. #4

    Padrão

    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.

  5. #5

    Padrão

    Muito obrigado Rodrigo era isso que eu queria.