Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal, a dúvida é simples. Gostaria de saber como fazer isso.
Sei que existe componentes, mas não consigo encontrar nenhum.
A Locaweb tem um componente, mas eu teria que hospedar o site lá pra poder usar né? E não é isso que eu queria.
Precisava que alguém, por gentileza, me indicasse algum site para baixar algum complemento, dll ou algo que me permita encontrar os endereços pelo CEP.
Obrigado desde já
Olá Jonathan.
Foi quase! Mas não funcionou!
dá esse erro:
Erro de tempo de execução do Microsoft VBScript (0x800A01A8)
Objeto necessário: 'objXmlDoc.selectSingleNode(...)'
/projeto/lay/validacep.asp, line 13
Eu simplesmente copiei o código da página que você me passou e acessei assim: validacep.asp?cep=02069030
Você tem que alterar essa linha de acordo com a configuração do seu PC.
Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")'("MSXML2.DOMDocument") ("Microsoft.XMLDOM")
um exemplo:
Basicamente,após digitar o cep, é so voce clica em qualquer lugar da pagina que ele preenche os demais campos automatico(endereço, bairro, cidade e estado).
Este aqui so será preciso caso voce tenha um site na locaweb e deseje usar o seu dominio para fazer.
busca_cep2.asp
<%
Response.Charset="ISO-8859-1"
Set CEP_obj = CreateObject("Correios.CEP")
CEP_obj.EncontraCEP(Trim(Request("CEP")))
If CEP_obj.Erro = 0 Then
endereco = CEP_obj.Endereco
bairro = CEP_obj.Bairro
cidade = CEP_obj.Cidade
estado = CEP_obj.Estado
cep = CEP_obj.CEP
response.write endereco&","&bairro&","&cidade&","&estado&","
Else
erro_descricao = CEP_obj.DescricaoErro
End If
Set CEP_obj = Nothing
%>
leitor.asp
<%Response.Charset="ISO-8859-1"
' Script ASP para requisição de dados de CEP de uma página pré-configurada.
' caso você use um site na locaweb, crie o arquivo de cima e altere o endereço abaixo para a página correta!
'senao, deixa como está.
url = "http://www.silo.com.br/busca_cep.asp?cep="& Replace(Request("CEP"),"'","''")
' Criando Objeto XML
Set objXML = Server.CreateObject("MSXML2.XMLHTTP")
' Enviando o pedido dos dados
objXML.open "GET",url,false
ObjXML.Send()
Response.Write objXML.responseText
Set objXML = Nothing
%>
formulario.asp
<script type="text/javascript">
function verifica(event){
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
var caract = new RegExp(/[0-9]+$/i);
var caract = caract.test(String.fromCharCode(keyCode));
if(!caract){
//alert("Caracter inválido: " +String.fromCharCode(keyCode));
keyCode=0;
return false;
}
}
</script>
<script type="text/javascript">
function addEvent(obj, evt, func) {
if (obj.attachEvent) {
return obj.attachEvent(("on"+evt), func);
} else if (obj.addEventListener) {
obj.addEventListener(evt, func, true);
return true;
}
return false;
}
function XMLHTTPRequest() {
try {
return new XMLHttpRequest(); // FF, Safari, Konqueror, Opera, ...
} catch(ee) {
try {
return new ActiveXObject("Msxml2.XMLHTTP"); // activeX (IE5.5+/MSXML2+)
} catch(e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP"); // activeX (IE5+/MSXML1)
} catch(E) {
return false; // doesn't support
}
}
}
}
function buscarEndereco() {
var campos = {
cep: document.getElementById("cep"),
logradouro: document.getElementById("logradouro"),
//numero: document.getElementById("numero"),
bairro: document.getElementById("bairro"),
localidade: document.getElementById("localidade"),
uf: document.getElementById("uf")
};
var ajax = XMLHTTPRequest();
ajax.open("GET", ("leitor.asp?cep=" + campos.cep.value.replace(/[^\d]*/, "")), true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 1) {
campos.logradouro.disabled = true;
campos.bairro.disabled = true;
campos.localidade.disabled = true;
campos.uf.disabled = true;
campos.logradouro.value = "carregando...";
campos.bairro.value = "carregando...";
campos.localidade.value = "carregando...";
//campos.uf.value = "carregando...";
} else if (ajax.readyState == 4) {
var r = ajax.responseText, i, logradouro, bairro, localidade, uf;
logradouro = r.substring(0, (i = r.indexOf(',')));
r = r.substring(++i);
bairro = r.substring(0, (i = r.indexOf(',')));
r = r.substring(++i);
localidade = r.substring(0, (i = r.indexOf(',')));
r = r.substring(++i);
uf = r.substring(0, (i = r.indexOf(',')));
//r = r.substring(++i);
campos.logradouro.disabled = false;
campos.bairro.disabled = false;
campos.localidade.disabled = false;
campos.uf.disabled = false;
campos.logradouro.value = logradouro;
campos.bairro.value = bairro;
campos.localidade.value = localidade;
//campos.uf.value = uf;
i = campos.uf.options.length;
while (i--) {
if (campos.uf.options[i].getAttribute("value") == uf) {
break;
}
}
campos.uf.selectedIndex = i;
}
};
ajax.send(null);
}
window.addEvent(
window,
"load",
function() {window.addEvent(document.getElementById("cep"), "blur", buscarEndereco);}
);
</script>
<form name="form" id="form" action="#" method="post">
<table width="253" border="0">
<tr>
<td colspan="2"><strong>
<label for="cep">CEP Residencial: <br>
</label>
<input name="cep" type="text" id="cep" onKeypress="return verifica(event);" maxlength="8" />
</strong></td>
</tr>
<tr>
<td width="154"><strong>
<label for="logradouro">Endereço:</label>
<br>
<input name="logradouro" type="text" class="campo3" id="logradouro" />
</strong></td>
<td width="89"><strong>
<label for="numero" class="numero">Numero:<br>
</label>
<input name="numero" type="text" id="numero" size="7" />
</strong></td>
</tr>
<tr>
<td colspan="2"><strong>
<label for="bairro">Bairro:</label>
<br>
<input name="bairro" type="text" id="bairro" />
</strong></td>
</tr>
<tr>
<td colspan="2"><strong>
<label for="localidade">Cidade:</label>
<br>
<input name="localidade" type="text" id="localidade" />
</strong></td>
</tr>
<tr>
<td colspan="2"><strong>
<label for="uf" class="uf">Estado:</label>
<br>
<select name="select2" id="uf">
<option value="">-- selecione --</option>
<option value="AC">Acre</option>
<option value="AL">Alagoas</option>
<option value="AP">Amapá</option>
<option value="AM">Amazonas</option>
<option value="BA">Bahia</option>
<option value="CE">Ceará</option>
<option value="DF">Distrito Federal</option>
<option value="ES">Espírito Santo</option>
<option value="GO">Goiás</option>
<option value="MA">Maranhão</option>
<option value="MT">Mato Grosso</option>
<option value="MS">Mato Grosso do Sul</option>
<option value="MG">Minas Gerais</option>
<option value="PA">Pará</option>
<option value="PB">Paraíba</option>
<option value="PR">Paraná</option>
<option value="PE">Pernambuco</option>
<option value="PI">Piauí</option>
<option value="RJ">Rio de Janeiro</option>
<option value="RN">Rio Grande do Norte</option>
<option value="RS">Rio Grande do Sul</option>
<option value="RO">Rondônia</option>
<option value="RR">Roraima</option>
<option value="SC">Santa Catarina</option>
<option value="SP">São Paulo</option>
<option value="SE">Sergipe</option>
<option value="TO">Tocantins</option>
</select>
</strong></td>
</tr>
</table>
</form>Eita oia eu aqui desenterrando tópico...
Sou ruim bagarai de Ajax, alguém poderia me explicar como integrar esse codigo que o Xan passou com o webservice da Republica Virtual. Vale pessoALL.
altere o XML para o da República virtual e veja como está a estrutura dele
Valeu Xan,
Vou fazendo aqui.. se precisar de ajuda dou um toque em vcs!
<script type="text/javascript">
<!--
// Função única que fará a transação
function getEndereco() {
// Se o campo CEP não estiver vazio
if($.trim($("#cep").val()) != ""){
/*
Para conectar no serviço e executar o json, precisamos usar a função
getScript do jQuery, o getScript e o dataType:"jsonp" conseguem fazer o cross-domain, os outros
dataTypes não possibilitam esta interação entre domínios diferentes
Estou chamando a url do serviço passando o parâmetro "formato=javascript" e o CEP digitado no formulário
[http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=](http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=)"+$("#cep").val()
*/
$.getScript("[http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=](http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=)"+$("#cep").val(), function(){
// o getScript dá um eval no script, então é só ler!
//Se o resultado for igual a 1
if(resultadoCEP["resultado"]){
// troca o valor dos elementos
$("#logradouro").val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$("#bairro").val(unescape(resultadoCEP["bairro"]));
$("#cidade").val(unescape(resultadoCEP["cidade"]));
$("#uf").val(unescape(resultadoCEP["uf"]));
}else{
alert("Endereço não encontrado");
}
});
}
}
//-->
</script>
<input name="cep" id="cep" type="text" size="10" maxlength="9" onchange="getEndereco()">
<input name="logradouro" id="logradouro" type="text">
<input name="bairro" id="bairro" type="text">
<input name="cidade" id="cidade" type="text">
<input name="uf" id="uf" type="text">Valeu Humberto
pessoal por favor estou utilizando o codigo do que o xanburzum passou
buscacep2.asp, formulario.asp e leitor.asp.
mas preciso fazer esse codigo trabalhar trocando as seguintes strings estou muito enferrujado no asp quem puder me ajudar agradeço.
ao inves de
logradouro=endentrega
bairro=bairroentrega
localidade=cidadeentrega
uf=estadoentrega
numero=numeroentrega
cep=cepentrega
preciso que seja alterado nas três paginas para que rode na maciota o codigo...quem puder ajudar realmente agradeço de coração pq vai ta quebrando um puta galhao
terás que mudar o XML
existem varios tópicos sobre este assunto , até mesmo fornecendo o BD de CEP ja atualizado,
caso naun encontre o arquivo de banco de dados, me mande um email k te passo,