Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] combos dinâmicos


marvi

Pergunta

Olá pessoal,

Estou querendo fazer 4 combos dinâmicos, onde a pessoa seleciona um, depois o outro... Ou seja, um combo é carregado a partir do outro combo anterior... veja o exemplo desse site: http://portal.mundiauto.com.br/mundiautos/home.aspx na opção BUSCAR POR VEÍCULOS tem vários combos para pesquisa, quero algo assim, no meu caso será 4 combos.

O que acontece é que tentei com meus códigos e nada, encontrei uns exemplos na Internet e só achei com 2 combos, mesmo assim tentei implementar e nada... Alguém conhece um modelo, exemplo desses combos que rodem ou que possa rodar com 4 combos?

Preciso muito!

Obrigado!

Marcelo

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Bom seguindo o exemplo que eu postei em http://scriptbrasil.com.br/forum/index.php?showtopic=121008

no default.html (ou .asp) voce lista primeiramente todos os itens, como por exemplo, carros. Nada mais que um LOOP em todos os itens na tabela certo?

funcoes.js tambem continua igual.

Vou simular como seria a sua pagina1.html em ASP:

<% id = request.querystring("id") 'aqui resgato o ID do carro selecionado

'Select para achar todas as marcas do carro selecionado
sql = "select * from marcas_de_carro where id_carro = "& id
set tab = conexao.execute(sql)

while not tab.eof
%>
<option value="<%= tab("id_marca")%>"><%= tab("marca")%></option>
<% tab.movenext
wend %>

O resto: pagina2.asp pagina3.asp etc.. sera a mesma coisa, unica q diferente é o select.

O que você precisa entender é que o ajax RECEBE options e joga no combo já existente na pagina, então você precisa passar options, como no exemplo acima.

Testa ae

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Andréia, certo...

Eu já estou fazendo, no meu caso será País - Estado - Cidade - Profissionais, coloquei o do carro só como exemplo...

Ok, meu combo 1 já gera os paises do banco de dados:

<script src="funcoes.js" type="text/javascript"></script>

Combo 1:
<select  name="combo1" id="combo1" onchange="RetornoAjax(this.value, 'pagina1.asp', 'combo2')" style="color: #575757; border: 1px solid #C0C0C0; background-color: #FFFFFF">
<option value="Selecione o Estado">Selecione o País</option>
<%
executar = "select * from paises order by id"
dim conexao

Call abre_conexao

Set rsbusca=Conexao.Execute(executar)

Do Until rsbusca.EOF
  Response.Write "<option value="&rsbusca("id")&">"&rsbusca("paises")&"</option>"
  rsbusca.MoveNext
Loop
%>
</select>

Combo 2:
<select name="combo2" id="combo2" onchange="RetornoAjax(this.value, 'pagina2.asp', 'combo3')"></select>


Combo 3:
<select name="combo3" id="combo3" onchange="RetornoAjax(this.value, 'pagina3.asp', 'combo4')"></select>


Combo 4:
<select name="combo4" id="combo4"></select>
Até aí tudo bem, pelo que vemos temos o onchange="RetornoAjax(this.value, 'pagina1.asp', 'combo2')" que chama a pagina1.asp A pagina1.asp:
<!--#include file="conexao1.asp"-->

<% id = request.querystring("id") 

sql = "select * from estados where id_pais = "& id
set tab = conexao.execute(sql)

while not tab.eof
%>
<option value="<%= tab("id")%>"><%= tab("estado")%></option>
<% tab.movenext
wend %>

Encontrou algum erro até aí? Pois aqui deu um erro de script mesmo, o erro ocorre quando seleciono no combo1 o país, não sei como colocar esse erro aqui, mas ele diz:

Linha 19

Caractere 10

Erro: Erro em tempo de execução desconhecido

Codigo 0

URL index.asp

O que deve ser? Pois não consigo ver o errro... Enquanto isso vou tentando descobrir aqui, se eu achar eu te aviso também...

Obrigado mesmo!

Marcelo

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

Andréia, tive observando o seu AJAX... como não conheço muito, estava fazendo uns comparativos de ajax que encontrei, não deveria ter algo no seu do tipo:

if (requip) {
            requip.onreadystatechange = ProcessEquip;
            requip.open("POST", url, true);
            requip.send();
        }
    }
}


function ProcessEquip(){
    if (requip.readyState == 4) {
        if (requip.status == 200) {
            document.getElementById("lanc1").innerHTML = requip.responseText;
        } else {
            alert("Houve um problema ao obter os dados:\n" + requip.statusText);
        }
    }
}

function atualizaLanc1(valor){
    loadXMLDoc("lancListaComb1.asp?ID="+valor);
}

Grato

Marcelo

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Andréia,

Ok, conseguir abrir o seu arquivo, mas continua na mesma... está parado, eu seleciono o país e os outros combos estão parados... Não mostra nada, porque?

Obs: A sua programação está muito legal, está otimizada, é bom para estudar e dar manutenção, mas não roda nada e nem da erro... Entende?

Obrigado pela atenção!

Marcelo

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

Andréia,

Muito obrigado mesmo pela ajuda e pela paciência! Pois eu já tinha uma semana procurando roda um combo assim... Já estava desistindo apesar de precisar bastante desse sistema!

Obrigado mesmo, você não sabe quanto ajudou!

Qualquer coisa estamos aí!

Abraço

Marcelo

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...