Ir para conteúdo

POWERED BY:

Arquivado

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

vitorlouzada

script de cidades e estados

Recommended Posts

Pessoal é o seguinte, eu baixei um script a internet que é um sisteminha em asp de um banco de dados contendo todas os Estados e cidades do Brasil, separados por ID´s que fazem os relacionamentos de cada estado com sua cidade. O script contém três arquivos um com o nome de ajax.js, conexao.asp. estados.asp e seleciona_cidades.asp.

 

Funciona beleza, o problema é que na hora de enviar para um banco de dados ou e-mail para consultas, ele não envia o nome da cidade nem do estado, envia o ID de cada um...

 

Vocês sabem como fazer para que não seja enviado o ID e sim o nome da cidade selecionada ?

 

Ou alguem tem um sistema parecido ai e que possa me ajuda???

 

Segue abaixo os códigos das páginas para analize de vocês.

 

Ajax.js

 

var xmlHttp

/* Essa funo manda a ID selecionada do combo de estados para a pgina que ir filtrar as cidades */
function MandaID(str)
{
xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	{
		alert ("Este browser no suporta HTTP Request")
		return
	}

var url="seleciona_cidade.asp" // o arquivo que ir executar a SQL das cidades
url=url+"?id_estado="+str // recebe o ID do estado para filtrar as cidade
url=url+"&sidjs="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

/* Essa funo ir exibir o resultado na DIV */
function stateChanged()
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("exibe_cidade").innerHTML=xmlHttp.responseText
	}
}

/* Instancia */
function GetXmlHttpObject()
{
var objXMLHttp=null

	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
return objXMLHttp
}

function ExibeIds()
{
var Estado = document.getElementById('estados');
var Cidade = document.getElementById('cidades');

if (Estado.value != '' && Cidade.value != '')
alert('ID do estado : ' + Estado.value + ' (' + Estado.options[Estado.options.selectedIndex].text + ')' + '\n\n' + 'ID da cidade : ' + Cidade.value + ' (' + Cidade.options[Cidade.options.selectedIndex].text + ')');
}

conexao.asp

 

<%
dim conexao
sub abre_conexao

set conexao = CreateObject("ADODB.Connection")
Conexao.Open "DBQ=COLOQUE_AQUI_O_CAMINHO_DA_PASTA_DO_BANCO\BD_DADOS.mdb;Driver={Microsoft Access Driver (*.mdb)}"

end sub

sub fecha_conexao
	 Conexao.close
	 Set Conexao = nothing
end sub 
%>

estados.asp

 

<!--#include file="conexao.asp"-->
<%
call abre_conexao

sql = "select id_estado, estado from estados order by estado"
set tab = conexao.execute(sql)
%>
<html>
<head>
<head>
<script src="ajax.js"></script>
</head>
<title>Exemplo de Ajax</title>

<style type="text/css">
table
{
font-family: verdana;
font-size: 11px;
color: #000099;
font-weight: bold;
}

select
{
font-family: verdana;
font-size: 11px;
}
</style>

<body>

<table border="1" width="40%" cellspacing="0" cellpadding="5" bgcolor="#EAEBEF" bordercolorlight="#FFFFFF" bordercolordark="#E3E5EA">
	<tr>
		<td width="10%">Estado:</td>
		<td width="30%"><select name="estados" onChange="MandaID(this.value)">
				<option value="">Selecione</option>
				<% while not tab.eof %>
				<option value="<%= tab("id_estado") %>"><%= tab("estado") %></option>
				<% tab.movenext
					 wend
				%>
				</select>
		</td>
	</tr>
	<tr>
		<td>Cidade:</td>
		<td><div id="exibe_cidade"><select><option value="">Selecione um estado</option></select></div></td>
	</tr>
</table>

<%
call fecha_conexao
set tab = nothing
%>
<br><br>
<input type="button" value="Exibir ids dos combos" onClick="ExibeIds()">
</form>
</body>
</html>

seleciona_cidades.asp

<!--#include file="conexao.asp"-->
<%
Response.Charset = "ISO-8859-1"
id_estado = request.querystring("id_estado")
%>

<select name="cidades">
<% if id_estado = "" then %>
	<option value="">Selecione um estado</option>
<% else

 	 call abre_conexao
		
	 sql_cidade="SELECT id_cidade, cidade FROM CIDADES WHERE id_estado="& id_estado
	 set tab_cidade = conexao.execute(sql_cidade)
	 while not tab_cidade.eof 
%>
		<option value="<%= tab_cidade("id_cidade") %>"><%= tab_cidade("cidade") %></option>

<% tab_cidade.movenext
	 wend

	 call fecha_conexao
	 set tab_cidade = nothing

	 end if
%>
</select>

 

Tá ai os códigos das páginas, se alguem puder me dar uma ajuda ai!!!

 

Fico no aguardo! Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

a lógica é sempre enviar o id em um banco relacional. Para enviar o nome altere essa tag pra ver se funciona

 

<option value="<%= tab_cidade("cidade") %>"><%= tab_cidade("cidade") %></option>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Jonathan... Muito obrigado!

 

Deu certo, ao invés de enviar o numero do ID enviu o nome da cidade.

 

Valeu...

 

Mas e agora, para enviar o nome do ESTADO ao e-mail e o banco de dados???

 

Você se tem alguma tag que pode alterar sem danificar o script?

 

fico no aguardo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só dar uma olhadinha na parte de estados, a logica é a mesma

<option value="<%= tab("estado") %>"><%= tab("estado") %></option>

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.