Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Martins

Ajax sem Efeitações!

Recommended Posts

Bom primeiramente gostaria de dizer que antes de criar esse código eu me "matei" em todos os fóruns inclusive este...é dicas dali códigos daqui..e nada simplificado que realmente ajudasse!

 

Consegui o que acho que muitos estão procurando por ai de uima forma mais simples.....

 

Espero que ajude quem precisa!

 

Abraços!

 

Diego

 

"Combo BOX de Estados e Cidades com AJAX"

 

///Primeiro o Arquivo Index.asp que contém a combo dinamica do DB

 

<%

 

sql="select * from estados order by estado"

 

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("teste.mdb"))

 

set rs = Server.CreateObject("ADODB.recordset")

rs.Open sql, conn

 

%>

<html>

<head>

<link href="base.css" rel="stylesheet" type="text/css" />

<script src="selectcustomer.js"></script>

<title>: : Combo Dinamica - By Diego E. Martins : :</title></head>

<body>

<form>

<select name="customers" onchange="showCustomer(this.value)">

<option selected value="1">Selecione:</option>

<option>------------------------------</option>

<%

rs.movefirst

Do While not rs.eof

response.Write "<option value='" & rs("id_estado") & "'>" & rs("estado") & "</option>"

rs.movenext

loop

rs.close

%>

</select>

</form>

<div id="carrega">Carregando Cidades...</div>

<p>

<div id="txtHint"><b>Selecione uma opção.</b></div>

</p></body>

</html>

 

 

/// Agora vem o arquivo Customer.js que contém o AJAX simplificado

 

var xmlHttp

 

function showCustomer(str)

{

 

xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)

{

alert ("Browser does not support HTTP Request")

return

}

 

var url="getcustomer.asp"

url=url+"?q="+str

url=url+"&sid="+Math.random()

xmlHttp.onreadystatechange=stateChanged

xmlHttp.open("POST",url,true)

xmlHttp.send(null)

 

}

 

function stateChanged()

 

{

 

 

if(xmlHttp.readyState == 1) { // Quando estiver carregando, exibe uma camada: Carregando...

 

var conteudo=document.getElementById("carrega")

conteudo.style.visibility = "visible";

 

}

 

if(xmlHttp.readyState == 4||xmlHttp.readyState=="Complete")

{

var conteudo2=document.getElementById("carrega")

conteudo2.style.visibility = "hidden";

document.getElementById("txtHint").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

}

 

 

/// Agora vem o arquivo getcustomer.asp. que executa os procedimentos e select´s no DB

 

<%

Response.Charset="ISO-8859-1"

sql="SELECT estados.id_estado, estados.estado, cidades.id_cidade, cidades.cidade FROM estados INNER JOIN cidades ON estados.id_estado = cidades.id_estado where cidades.id_estado="

sql=sql & request.querystring("q")

 

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("teste.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

rs.Open sql, conn

 

if rs.eof then

response.write "Não há cidades para esse estado"

else

 

response.write "<b><font color=red>Cidades Relacionadas:</font></b>"

do while not rs.EOF

response.write("<table>")

 

id_estado=rs("id_estado")

cidade=rs("cidade")

 

response.write("<tr>")

 

response.write("<td><b>" & cidade & "</td>")

 

response.write("</tr>")

 

response.write("</table>")

rs.MoveNext

loop

end if

%>

 

É isso, só salvar e mandar bala! E está bem facil de adptar pra outros!! Espero que gostem!!

 

Abaixo o exemplo feito on-line

 

http://www.grupomonteiro.com.br/ajax

 

Abraços

 

Diego E. Martins

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detalhe.....

está faltando colocar o código do arquivo selectcustomer.js

Valeu....mais uma vez parabéns

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou tentando utilizar esse código dentro de uma camada e não tá funcionando....saberia pq?não apresenta nenhum código de erro, apenas não lista

Compartilhar este post


Link para o post
Compartilhar em outros sites

está local, mas o problema eu acho que é mais ou menos isso....o código pega a url como parâmetro, se eu coloco o código dentro de uma camada ele perde o parametro e não executa, vou tentar de outra maneira, qualquer coisa retorno a questão...se tiver algum exemplo manda ai...valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

é pessoal..hoje em dia.. ajax é o mínimo que pode se esperar de um programador..nao testei o codigo.. mas parabens pela iniciativa..tenho q me coçar e fazer um tutozinho.. rsabraço

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.