Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Silvafabiano

Ajax + Combobox

Recommended Posts

Olá...

 

Estou com o seguinte problema.

 

Peguei um código e tentei adaptá-lo, mas nao tive sucesso ao gerar a 3ª combo.

 

o exemplo que quero é assim.

 

eu clico na primeira combo e ele gera a segunda e aí clico na segunda me gera a terceira e assim por diante.

 

nao sei aonde estou errando

 

os códigos

 

Aqui está o código rodando para terem uma noção do que está acontecendo

 

principal.asp

 

<%@LANGUAGE="VBSCRIPT"%><script language="javascript" src="lib_ajax.js"></script><%Set Conn = Server.CreateObject("ADODB.connection")	DSNtest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("teste.mdb")	Conn.Open DSNtest		strSQL = "SELECT COD,NOME FROM VEICULO"	set ObjRS = Conn.Execute(strSQL)	if not ObjRS.EOF then		vetE = ObjRS.getRows()		qtdE = Ubound(vetE, 2)	else		qtdE = -1	end if	ObjRS.Close()	Set ObjRS = nothing		conn.Close   Set conn = Nothing%><html><body><form name="form1" id="form1" method="get"> Veiculo: 	<select name="veiculo" onChange="MandaID(this.value,1)">		<option value="">Selecione</option>			<% for i = 0 to qtdE %>				<option value="<%= vetE(0,i) %>"><%= vetE(1,i) %></option>			<% next %>  </select> <br>Fabricante:	<span id="exibe_fabricante">		<select name="Fabricante" onChange="MandaID(this.value,2)">			<option value="">Selecione um veiculo</option>		</select>	</span>	<br> Marca: 	<span id="exibe_marca">	</span>	<br></form></body></html>
lib_ajax.js

 

var xmlHttpfunction MandaID(str,valor){	xmlHttp=GetXmlHttpObject()	if (xmlHttp==null){		alert ("Este browser não suporta HTTP Request")		return	}	if (valor == 1 ){		var url="gerar.asp"		url=url+"?cod_veiculo="+str		url=url+"&status=1"		url=url+"&sid="+Math.random()		xmlHttp.onreadystatechange=stateChanged_vec		xmlHttp.open("GET",url,true)		xmlHttp.send(null)	}	if (valor == 2){		var url="gerar.asp"		url=url+"?cod_fabricante="+str		url=url+"&status=2"		url=url+"&sid="+Math.random()		xmlHttp.onreadystatechange=stateChanged_fb		xmlHttp.open("GET",url,true)		xmlHttp.send(null)	}	}function stateChanged_vec(){	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){		document.getElementById("exibe_fabricante").innerHTML=xmlHttp.responseText	}}function stateChanged_fb(){	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){		document.getElementById("exibe_marca").innerHTML=xmlHttp.responseText	}}function GetXmlHttpObject(){	var objXMLHttp=null	if (window.XMLHttpRequest){		objXMLHttp=new XMLHttpRequest()	}	else if (window.ActiveXObject){		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")	}	return objXMLHttp}
e o gerar.asp

 

<%Set Conn = Server.CreateObject("ADODB.connection")	DSNtest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("teste.mdb")	Conn.Open DSNtest			Response.Charset = "ISO-8859-1"veiculo_cod = Request.QueryString("cod_veiculo")fabricante_cod = Request.QueryString("cod_fabricante")st = Request.QueryString("status")if st = 1 then%>	<select onChange="MandaID(this.value,2)">			<% if veiculo_cod = "" then %>				<option value="">Selecione um veiculo</option>			<%else					strSQL = "SELECT COD,NOME FROM Fabricante WHERE COD_VEICULO = "&veiculo_cod&" ORDER BY COD"				Response.Write(strSQL)					set ObjRS = Conn.Execute(strSQL)					if not ObjRS.EOF then						vetC = ObjRS.getRows()						qtdC = Ubound(vetC, 2)					else						qtdC = -1					end if					ObjRS.Close()					Set ObjRS = nothing									for i=0 to qtdC %>					<option value="<%= vetC(0,i) %>"><%= vetC(1,i) %></option>				<% next			end if%>		</select><%end ifif st = 2 then%>	<select>			<% if fabricante_cod = "" then %>				<option value="">Selecione um Fabricante</option>			<%else									strSQL = "SELECT NJ_CODIGO, NJ_NOME FROM MARCA WHERE COD_FABRICANTE ="&fabricante_cod&" ORDER BY COD"					set ObjRS = Conn.Execute(strSQL)					if not ObjRS.EOF then						vetN = ObjRS.getRows()						qtdN = Ubound(vetN, 2)					else						qtdN = -1					end if					ObjRS.Close()					Set ObjRS = nothing									for i=0 to qtdN %>					<option value="<%= vetN(0,i) %>"><%= vetN(1,i) %></option>				<% next			end if%>		</select><%end if	conn.Close   Set conn = Nothing%>
Grato

 

Fabiano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Manda escrever fabricante_cod dentro do gerar.asp e veja o valor que ele possui.

 

Se ele tiver algum valor, verifica se esse valor existe na tabela marca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Manda escrever fabricante_cod dentro do gerar.asp e veja o valor que ele possui.

 

Se ele tiver algum valor, verifica se esse valor existe na tabela marca.

hargon

 

Obrigado ae

 

O problema estava no select ehehe que falta de atenção a minha

 

era Select COD,NOME

 

Agora gostaria de saber se posso fazer isso com + de 3 combo.

 

Grato

Fabiano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim. É só acrescentar mais um if (valor == 3) no js e mais um select no gerar.asp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.