Jump to content
gersonab

consultar cep pelo endereço

Recommended Posts

Bom dia.

utilizava um código para completar o endereço conforme o cep, funcionando perfeitamente, só que preciso pegar o cep caso não tenha, pelo endereço digitado, pesquisando pela internet encontrei o código abaixo, funciona perfeitamente para os dois casos, só que .... no meu formulário tenho dois campos de endereço, um residencial e outro de trabalho, o código que utilizava antes funcionava para os dois campos, erá só mudar o id do campo do formulário, tipo se eu tinha id="logadouro" em um campo no outro id="logadouro1", só que .... no código atualizado para ambas as pesquisas esta forma não funciona, gostaria da ajuda de vocês para este problema.

código antigo:

 function limpa_formulário_cep() {
        $("#logradouro").val("");
        $("#bairro").val("");
        $("#localidade").val("");
        $("#uf").val("");
    }
    $("#cep").blur(function() {
        var cep = $(this).val().replace(/\D/g, '');
        if (cep != "") {
            var validacep = /^[0-9]{8}$/;
            if(validacep.test(cep)) {
                $("#logradouro").val("...");
                $("#bairro").val("...");
                $("#localidade").val("...");
                $("#uf").val("...");
                $.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados) {
                    if (!("erro" in dados)) {
                        $("#logradouro").val(dados.logradouro);
                        $("#bairro").val(dados.bairro);
                        $("#localidade").val(dados.localidade);
                        $("#uf").val(dados.uf);
    } 
    else {
        limpa_formulário_cep();
        alert("CEP não encontrado.");
    }
});
    }
    else {
        limpa_formulário_cep();
        alert("Formato de CEP inválido.");
    }
    }
    else {
        limpa_formulário_cep();
    }
});

como podem ver era só duplicar e mudar o id, agora neste ja não consigo

var inputsCEP = $('#logradouro, #bairro, #localidade, #uf');
        var inputsRUA = $('#cep, #bairro');
        var validacep = /^[0-9]{8}$/;
        function limpa_formulário_cep(alerta) {
          if (alerta !== undefined) {
            alert(alerta);
        }
        inputsCEP.val('');
    }
    function get(url) {
      $.get(url, function(data) {
        if (!("erro" in data)) {
          if (Object.prototype.toString.call(data) === '[object Array]') {
            var data = data[0];
        }
        $.each(data, function(nome, info) {
            $('#' + nome).val(nome === 'cep' ? info.replace(/\D/g, '') : info).attr('info', nome === 'cep' ? info.replace(/\D/g, '') : info);
        });
    } else {
      limpa_formulário_cep("CEP não encontrado.");
  }
});
  }
// Digitando RUA/CIDADE/UF
$('#logradouro, #localidade, #uf').on('blur', function(e) {
  if ($('#logradouro').val() !== '' && $('#logradouro').val() !== $('#logradouro').attr('info') && $('#localidade').val() !== '' && $('#localidade').val() !== $('#localidade').attr('info') && $('#uf').val() !== '' && $('#uf').val() !== $('#uf').attr('info')) {
    inputsRUA.val('...');
    get('https://viacep.com.br/ws/' + $('#uf').val() + '/' + $('#localidade').val() + '/' + $('#logradouro').val() + '/json/');
}
});

// Digitando CEP
$('#cep').on('blur', function(e) {
  var cep = $('#cep').val().replace(/\D/g, '');
  if (cep !== "" && validacep.test(cep)) {
    inputsCEP.val('...');
    get('https://viacep.com.br/ws/' + cep + '/json/');
} else {
    limpa_formulário_cep(cep == "" ? undefined : "Formato de CEP inválido.");
}
});

desde já agradeço.

Share this post


Link to post
Share on other sites
2 horas atrás, gersonab disse:

é exatamente este que estou usando agora

Html

		<form action="#" onsubmit="return false">
			CEP: <input type="text" id="cep" maxlength="9" placeholder="00000-000" autofocus><br><br>
			UF: <input type="text" id="uf"><br>
			Cidade: <input type="text" id="cidade"><br>
			Bairro: <input type="text" id="bairro"><br>
			Endereço: <input type="text" id="endereco">
		</form>
		<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
// Registra o evento blur do campo "cep", ou seja, a pesquisa será feita quando o usuário sair do campo "cep"
			$("#cep").blur(function(){
				// Remove tudo o que não é número para fazer a pesquisa
				var cep = this.value.replace(/[^0-9]/, "");
				
				// Validação do CEP; caso o CEP não possua 8 números, então cancela
				// a consulta
				if(cep.length != 8){
					return false;
				}
// A url de pesquisa consiste no endereço do webservice + o cep que
				// o usuário informou + o tipo de retorno desejado (entre "json",
				// "jsonp", "xml", "piped" ou "querty")
       var url = "https://viacep.com.br/ws/"+cep+"/json/";
// Faz a pesquisa do CEP, tratando o retorno com try/catch para que
				// caso ocorra algum erro (o cep pode não existir, por exemplo) a
				// usabilidade não seja afetada, assim o usuário pode continuar//
				// preenchendo os campos normalmente
				$.getJSON(url, function(dadosRetorno){
					try{
						// Preenche os campos de acordo com o retorno da pesquisa
						$("#endereco").val(dadosRetorno.logradouro);
						$("#bairro").val(dadosRetorno.bairro);
						$("#cidade").val(dadosRetorno.localidade);
						$("#uf").val(dadosRetorno.uf);
					}catch(ex){}
				});
			});

Resultado final que seria isso aqui

$("#cep").blur(function(){
				// Remove tudo o que não é número para fazer a pesquisa
				var cep = this.value.replace(/[^0-9]/, "");
				
				// Validação do CEP; caso o CEP não possua 8 números, então cancela a consulta
				if(cep.length != 8){
					return false;
				}
var url = "https://viacep.com.br/ws/"+cep+"/json/";

$.getJSON(url, function(dadosRetorno){
					try{
						// Preenche os campos de acordo com o retorno da pesquisa
						$("#endereco").val(dadosRetorno.logradouro);
						$("#bairro").val(dadosRetorno.bairro);
						$("#cidade").val(dadosRetorno.localidade);
						$("#uf").val(dadosRetorno.uf);
					}catch(ex){}
				});
			});

 

 

Ex: 2

    <!-- Adicionando Javascript -->
    <script type="text/javascript" >
    
    function limpa_formulário_cep() {
            //Limpa valores do formulário de cep.
            document.getElementById('rua').value=("");
            document.getElementById('bairro').value=("");
            document.getElementById('cidade').value=("");
            document.getElementById('uf').value=("");
            document.getElementById('ibge').value=("");
    }

    function meu_callback(conteudo) {
        if (!("erro" in conteudo)) {
            //Atualiza os campos com os valores.
            document.getElementById('rua').value=(conteudo.logradouro);
            document.getElementById('bairro').value=(conteudo.bairro);
            document.getElementById('cidade').value=(conteudo.localidade);
            document.getElementById('uf').value=(conteudo.uf);
            document.getElementById('ibge').value=(conteudo.ibge);
        } //end if.
        else {
            //CEP não Encontrado.
            limpa_formulário_cep();
            alert("CEP não encontrado.");
        }
    }
        
    function pesquisacep(valor) {

        //Nova variável "cep" somente com dígitos.
        var cep = valor.replace(/\D/g, '');

        //Verifica se campo cep possui valor informado.
        if (cep != "") {

            //Expressão regular para validar o CEP.
            var validacep = /^[0-9]{8}$/;

            //Valida o formato do CEP.
            if(validacep.test(cep)) {

                //Preenche os campos com "..." enquanto consulta webservice.
                document.getElementById('rua').value="...";
                document.getElementById('bairro').value="...";
                document.getElementById('cidade').value="...";
                document.getElementById('uf').value="...";
                document.getElementById('ibge').value="...";

                //Cria um elemento javascript.
                var script = document.createElement('script');

                //Sincroniza com o callback.
                script.src = '//viacep.com.br/ws/'+ cep + '/json/?callback=meu_callback';

                //Insere script no documento e carrega o conteúdo.
                document.body.appendChild(script);

            } //end if.
            else {
                //cep é inválido.
                limpa_formulário_cep();
                alert("Formato de CEP inválido.");
            }
        } //end if.
        else {
            //cep sem valor, limpa formulário.
            limpa_formulário_cep();
        }
    };

    </script>

Html

    <!-- Inicio do formulario -->
      <form method="Post" action="cep.php">
        <label>Cep:
        <input name="cep" type="text" id="cep" value="" size="10" maxlength="9"
               onblur="pesquisacep(this.value);" /></label><br />
        <label>Rua:
        <input name="rua" type="text" id="rua" size="60" /></label><br />
        <label>Bairro:
        <input name="bairro" type="text" id="bairro" size="40" /></label><br />
        <label>Cidade:
        <input name="cidade" type="text" id="cidade" size="40" /></label><br />
        <label>Estado:
        <input name="uf" type="text" id="uf" size="2" /></label><br />
		<input type="submit" value="Cadastrar">
      </form>

ce.php

<?php
	require_once("database.php");
	
	$cep = mysqli_real_escape_string($conn, $_POST['cep']);
	$endereco = mysqli_real_escape_string($conn, $_POST['rua']);
	$bairro = mysqli_real_escape_string($conn, $_POST['bairro']);
	$cidade = mysqli_real_escape_string($conn, $_POST['cidade']);
	$estado = mysqli_real_escape_string($conn, $_POST['uf']);
	
	$ceps = "INSERT INTO cep (
		cep, 
		endereco, 
		bairro, 
		cidade, 
		estado, 
		created) VALUES (
		'$cep', 
		'$endereco', 
		'$bairro', 
		'$cidade', 
		'$estado',  
		NOW())";
		$cep = mysqli_query($conn, $ceps); 
?>

Outro Ex: Aqui   Aqui

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Wanderson Moreira
      Opa, blz?
      Alguém me da um help?
       
      Estou criando um relatorio em PDF com o dompdf e ao adicionar algumas imagens no documento, as mesmas saem deitadas.
       
      No html as fotos saem com a orientação normal(em pé) conforme foi inserida
       
      alguém sabe o que pode ser?
    • By Wanderson Moreira
      Opa, blz?
      Alguém me da um help?
       
      Estou criando um relatorio em PDF com o dompdf e ao adicionar algumas imagens no documento, as mesmas saem deitadas.
       
      No html as fotos saem com a orientação normal(em pé) conforme foi inserida
       
      alguém sabe o que pode ser?
    • By luigiferrari
      Gostaria de fazer um programa onde o usuário digitaria o tamanho de conjuntos e quantas linhas possui os conjuntos, exemplo:

      Seguindo, o programa perguntaria qual conjunto o usuário quer adicionar o valor, e então o valor seria adicionado nas linhas, e qnd cheio, seria o FIFO.
      Mas minhas principais duvidas seriam:
      1- Como eu crio um vetor dentro de outro (não necessariamente precisa ser um vetor, aceito sugestões de como fazer isso)
      2- Caso eu faça com o vetor, teria que gerar x vetores, por exemplo, caso o usuário colocasse em "qts conjuntos: 5" teria que criar 5 conjuntos(vetores) diferentes. Como faço isso?!
      Lembrando aceito qualquer sugestão, estou fazendo em C# mas tbm entendo de Python e PHP caso tenha alguma ideia.
    • By Rizer
      Galera, estamos buscando um profissional para atuar como Desenvolvedor PHP Junior/Pleno na Rizer. Está interessado?
       
      Empresa: Rizer (www.rizer.com.br)
      Vaga: Desenvolvedor PHP Pleno
      Carga horária: 40h semanais (seg a --- / 9h-18h)
      Local de trabalho: Edf. Cosmopolitan, Paralela - Salvador/BA
       
      Buscamos um profissional que não tenha potencial somente para exercer com excelência a posição de Desenvolvedor PHP, mas também para - num futuro próximo - liderar times na sua área de expertise. Para tornar isso possível, iremos imergi-lo no mercado e no mundo de empresas de tecnologia e startups, apresentando ainda mais sobre o funcionamento de empresas como a nossa (não tão tradicionais assim) e sobre as metodologias que utilizamos para atingir nossos resultados.
       
      A Rizer cresce exponencialmente a cada dia e gostamos de fazer todos crescerem junto conosco. Por isso, além de uma excelente política de reconhecimento e promoção (algumas vezes meteórica) de funcionários, possuímos também um programa de Vesting para oferecer quotas da sociedade da empresa para membros do nosso time que se destacam.
       
      Pré-requisitos:
      Conhecimento sólido em PHP (2+ anos de experiência);
      Integração via APIs rest;
      Framework Laravel;
      Banco de dados relacional (mysql);
      Utilização de metodologias ágeis (Scrum);
      Git / gitflow.
      Phpunit;
      Boas práticas e design pattern;;
      CSS, HTML e JavaScript
       
      Interessados deverão preencher o seguinte formulário:
       
      http://bit.ly/rizer1
       
      e fazer o upload do currículo com nome “Desenvolvedor PHP Pleno - SEU NOME”
      Você se considera uma excelente pessoa e um ótimo profissional? Curtiu a vaga? Então vem trabalhar com a gente, vem!
    • By danilo759
      Tenho uma tabelinha de programas para uma rádio... está da seguinte forma.

      titulo
      data (YYYY-MM-DD)
      hora (00:00:00)

      Minha consulta, mas não retorna o programa da hora corrente. O que eu fiz de errado?
      SELECT * FROM programas WHERE data = CURDATE() AND hora = CURTIME() LIMIT 1
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.