Agência OFF, desenvolvimento de soluções web para as Agências Digitais
Default.asp
<html>
<head>
<title>Teste Combo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript" src="ajax.js"></script>
</head>
<body>
Categoria:
<select name="categoria" onchange="alimentarCombo(this.value);">
<option value="">[ Selecione ]</option>
<%
set rs = conn.execute("SELECT codigo, nome FROM categoria ORDER BY nome ASC")
if (not rs.eof) then
while (not rs.eof)
response.write("<option value="""&rs("codigo")&""">"&rs("nome")&"</option>")
rs.moveNext : wend
end if
set rs = nothing
%>
</select>
<br>
Sub-Categoria: <div id="resultado"></div>
</body>
</html>
ajax.js
function GetXMLHttp() {
if (navigator.appName == "Microsoft Internet Explorer") {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
var mod = GetXMLHttp();
function alimentarCombo(valor) {
mod.open("GET", "Carrega.ajax.asp?id="+valor+"", true);
mod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
mod.onreadystatechange = function() {
if (mod.readyState == 4) {
document.getElementById("resultado").innerHTML = mod.responseText;
}
};
mod.send(null);
}
Carrega.ajax.asp
<select name="sub_categoria">
<option value="">[ Selecione ]</option>
<%
set rs = conn.execute("SELECT codigo, nome FROM sub_categoria WHERE categoria_id = '"&request.queryString("id")&"'")
if (not rs.eof) then
while (not rs.eof)
response.write("<option value="""&rs("codigo")&""">"&rs("nome")&"</option>")
rs.moveNext :wend
end if
set rs = nothing
%>
</select>
Agência OFF, desenvolvimento de soluções web para as Agências Digitais
Tags: ajax • carregando combo dinamicamente • carregar combo • Combo • ComboBox • dinâmico • Function • innerHTML • javascript • Microsoft Internet Explorer • Microsoft.XMLHTTP • onreadystatechange • xmlHttp


Olá, como faço para carregar mais de uma combo, tipo a do webmotors, no meu caso são 5.
Agradeço
crie cada função para cada combo que vc quer, modificando os ID onde iram receber os valores!
Fiz identico…
olha o erro q da….
http://www.mxstudio.com.br/forum/index.php?showtopic=72670&st=0#entry210338
poderia me ajudar????
desde já obrigada
Ted k’ :
parabéns pelo tópico…
você está dando um /show em AJAX!!
é o meu primeiro contato com essa tecnologia..
mas preciso saber uma coisa..
como faço para passar esses dados via post e recuperá-los?
abração!!!
Ted, beleza?
Já venho usando esse código faz um tempo. Funciona que é uma beleza.
Porém até hoje não consegui validar com o spry do dw o combo da div resultado.
Tem idéia de como resolver isso?
desconheço o spry a ponto de usar ele, poderia colocar na net para dar uma analisada?
Parabens pelo tema….foi muito util
muito bom, mais como fazer para funcinar no ff, ele não recupera a sub_categoria.
para te ajudar, preciso saber o erro que gera, coloca na net, em alguma hospedagem para ver teu código!
Parabéns pelo Post. Entendi como funciona de maneira clara e objetiva.
Vlw.
Ted K’,
Eu estou utilizando seu exmplo no código abaixo:
Modelos_Ajax.asp
Selecione um Modelo
<option value=”">
———————————————————————————————-
E na página ASP que recupera o valor do campo “Carro”, não está recuperando no FF ou Chrome. o Valor fica sempre em branco.
Estou recuperando assim: IDCarro = Request(“Carro”)
Obrigado. seu código é bem esclarecedor!
Pra utilizar esse código junto com um Spry ou outros formatadores de formulário, a função Java pra transformar o objeto no que é proposto pelo Spry deverá estar dentro do ajax.js logo após mod.send(null); (var comboVeiculo = new Spry(…) ..) e assim o objeto será renderizado após sua criação. O problema é que as vezes funciona às vezes não, é meio que aleatório e estou tentando entender o porque…
Aparentemente depende do tempo pra retornar o valor de Carrega.ajax.asp e gerar o select… Se não for gerado e a função do Spry rodar, dará erro informando que o objeto existe. O segredo talvez esteja em identificar ou segurar o código de renderização para rodar somente a´pós o retorno do Carrega.ajax.asp…
Se puder ajudar agradeço! Abraços!
Consegui fazer funcionar utilizando um algum tipo de spry ou formatação. A var para gerar o combo box deve estar dentro da condição readyState (assim o combo só sera renderizado quando a página Carrega.ajax.asp estiver concluída.)
mod.onreadystatechange = function() {
if (mod.readyState == 4) {
document.getElementById(“txSuper”).innerHTML = mod.responseText;
var combo2 = new dhtmlXCombo(“txSupervisor”, “Rel_Form”, 200);
}
Abraços!
Usei este combo dinâmico e estou com problemas ao fazer a consulta no banco com palavras que tem espaço. Por exemplo São Paulo!
Faço um select das cidades e depois um select dos bairros de acordo com a cidade selecionada.
Acredito que seja pelo modo que ele está passando a variável do primeiro select. Alguma sugestão?
Amigo, tenho um combo que quando selecionado o estado abre a cidade, tudo funcionando redondinho. meu problema é quando eu clico em buscar. ele efetua a busca porem o combo perde os valores. gostaria que quando clicasse em buscar ele mostrasse o estado e a cidade selecionados.
Como posso resolver isso?
Melhor até usar jQuery já, irei criar um post usando o jQuery
Achei ótimo, funcionou e tal.
Estou utilizando em um form, só que quando dou o post ele não recupera o valor do select que está dentro da DIV.
Quando olho o código fonte da pg com os dois selects, realmente só aparece um.
Sabe me dizer pq o sistema ignora o conteúdo impresso?
Se tivesse alguma função para qdo seleciono algo em sub-categoria ele preenche um campo texto, resolveria o problema tb.
Poderia me ajudar?
Obrigada!!!!!!!