Ir para conteúdo

POWERED BY:

Arquivado

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

shumi

Menus selects

Recommended Posts

Galera,

Tenho um combo que o Adriano me ensinou a fazer e esta funcionando perfeitamente, mas me deparei ao um problema agora quando fui montar os relatorios, no combo tem 2 menus selects certo? como vcs podem ver abaixo um com o nome uf e outro com o nome estabelecimento ai achei que quando fosse fazer no ASP um request.form desses dados iam vir o estabelecimento e a UF, mas não vem os 2 como UF, porque isso?????

 

<select name="uf" size="1" id="uf" onChange="carregar();"><option value>...</option><%While not rs.eofuf = rs("uf")	%><option value="<%=uf%>"><%=uf%></option><%rs.moveNEXTwend%></select><select name="estabelecimento" id="estabelecimento"><option></option></select></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

creio que a função carregar que está no select uf sejá para enviar o valor selecionado para a sua própria página.O que você terá de fazer é um código asp que pegue este valor enviado e assim como a uf, o código construa as opções de estabelecimento.Se tiver maiores duvidar, sugiro que pergunte no fórum de asp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei obter um dado de um form quando o name do select é válido, nesse caso ele ignora o name desse meu select. :blink: Não dá pra fazer nada na função para que o name não seja "ignorado"???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô Adriano agora você me zuou ^_^

 

Fazer o Request.Form eu sei.

eu usei meu script do form assim:

 

<select name="uf" size="1" id="uf" onChange="carregar();"><option value>...</option><%While not rs.eof	uf = rs("uf")	%>	<option value="<%=uf%>"><%=uf%></option>	<%rs.moveNEXT	wend%>	</select></td>	<td width="41"><select name="estabelecimento" id="estabelecimento" size="1">	<option value="...">...</option>	</select></td>	</tr></table>	<table>	<tr><td><input type="submit" name="Submit" value="Visualizar">

e na outra pagina que resgata as informações fiz assim, normal:

cod = Request.Form("cod")estabelecimento = Request.Form("estabelecimento")uf = Request.Form("uf")

e no ASP faço um Response.Write(estabelecimento)

e me retorna o valor da UF

Tipo tenho um estabelecimento que esta UF = SC

No meu Response.write vem SC ao invés do nome do estabelecimento.

Eu achei super estranho!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano,você pode dar uma confirida pra ver se está certinho o que estou fazendo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano,

Fiz assim pra testar veja:

 

<select name="uf" size="1"><option value>...</option><%While not rs.eof	uf = rs("uf")	%>	<option value="<%=uf%>"><%=uf%></option>	<%rs.moveNEXT	wend%>	</select></td>	<td width="41"><select name="estabelecimento" size="1">		<option value="teste">Teste</option>		</select>

coloquei valores no 2º select pra testar se ia escrever teste no meu response.write da outra pagina e escreveu teste certinho.... :wacko:

Não pode ser erro em outro lugar??? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

To testando direto na FTP!!!vou testar local pra ve se rola e já te falo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei local e deu mesmo erro Adriano, estranho né!você sabe outra forma de fazer isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano,

 

Aqui ta o Remote2.asp

 

<%   set Conexcao = Server.CreateObject("ADODB.Connection")Conexcao.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MaPpath("dbsistema.mdb")SQL = "SELECT uf, estabelecimento from ficha_tecnica WHERE uf = '" & request.querystring("uf") & "' ORDER BY estabelecimento"set rs = server.CreateObject("ADODB.Recordset")Conexcao.openrs.CursorType = 3   rs.Open SQL, Conexcao   rs.MoveFirst%>  <script>  loc = new Array(<%=rs.recordcount%>)  for (i=0; i < <%=rs.recordcount%>; i++) {		 loc[i] = new Array(2)				 for (j=0; j < 2; j++) {			 loc[i][j] = "0"		   }   }   <% j = 0	 do while not rs.eof%>	  loc[<%=j%>][0] = "<%=trim(rs("uf"))%>";	  loc[<%=j%>][1] = "<%=trim(rs("estabelecimento"))%>";	  <%	  rs.movenext	  j  = j  + 1	 loop   rs.close  set rs = nothing   Conexcao.close   set Conexcao = nothing %>   parent.inicia();       </script>

Aqui ta a função

 

<script language="JavaScript" type="text/JavaScript">	function carregar(){	Combo1 = document.relatorio.uf; //ALTERE AQUI PARA SEU FORM E 1º SELECT	Combo2 = document.relatorio.estabelecimento; //ALTERE AQUI PARA SEU FORM E 2º SELECT	var url;	url = 'remote2.asp?uf='+Combo1[Combo1.selectedIndex].value;	Combo2.options.length = 0;	addItem(Combo2,"Aguarde...carregando","",false,Combo2.length)	myIframe.location = url;	Combo2.focus()	}		function inicia(){	local1 = new Array();	var maximo1, i;	local1 = myIframe.loc;	maximo1 = local1.length;	Combo2.options.length = 0;	//addItem(Combo2,false,Combo2.length);	for (i=0;i<maximo1;i++){	addItem(Combo2,local1[i][1],local1[i][0],false,Combo2.length);	}	}		function addItem(obj,strText,strValue,blSel,intPos){	 	 var newOpt,i,ArTemp,selIndex;	 	 selIndex = (blSel)?intPos:obj.selectedIndex;	 	 newOpt = new Option(strText,strValue);	 	 Len = obj.options.length+1	 	 if (intPos > Len) return	 	 obj.options.length = Len	 	 if (intPos != Len) {	 		  ArTemp = new Array();	 		  for(i=intPos;i<obj.options.length-1;i++)	 			   ArTemp[i] = Array(obj.options[i].text,obj.options[i].value);	 		  for(i=intPos+1;i<Len;i++)	 			   obj.options[i] = new Option(ArTemp[i-1][0],ArTemp[i-1][1]);	 	 }	 	 obj.options[intPos] = newOpt;	 	 if (selIndex > intPos)	 		  obj.selectedIndex = selIndex+1;	 	 else if (selIndex == intPos)	  		  obj.selectedIndex = intPos;	 }	</script>

aqui o Iframe

 

<div style="DISPLAY: none; POSITION: absolute" align="left"><IFRAME src name="myIframe" id="myIframe" width="400" height="100" marginwidth="0" marginheight="0"></IFRAME></div>

e aqui os selects

<select name="uf" size="1" id="uf" onChange="carregar();"><option value>...</option><%While not rs.eof	uf = rs("uf")	%>	<option value="<%=uf%>"><%=uf%></option>	<%rs.moveNEXT	wend%>	</select></td>	<td width="41"><select name="estabelecimento" id="estabelecimento" size="1">		<option></option>		</select>

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummmmmm entendi.

Então o certo é assim:

 

<script>  loc = new Array(<%=rs.recordcount%>)  for (i=0; i < <%=rs.recordcount%>; i++) {		 loc[i] = new Array(2)				 for (j=0; j < 2; j++) {			 loc[i][j] = "0"		   }   }   <% j = 0	 do while not rs.eof%>	  loc[<%=j%>][0] = "<%=trim(rs("estabelecimento"))%>";	  loc[<%=j%>][1] = "<%=trim(rs("uf"))%>";	  <%	  rs.movenext	  j  = j  + 1	 loop   rs.close  set rs = nothing   Conexcao.close   set Conexcao = nothing %>   parent.inicia();       </script>

né??? ai teste no response.write("estabelecimento") e deu certo, mas quando uso o select escolho a UF e ao invés de aparecer o estabelecimento no 2º select aparece denovo a UF. mas o valor vai certo pra outra pagina.... :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz cara deu certinho!!!! perfeito!!!

 

Valeu Adriano!!!!

Quebro um galhão!!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Valeu Fleury!!!

Abraços!!!

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.