Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Cep Com Ajax


misterviralata

Pergunta

Ola Amigos!

tenho o um script onde o usúario digita o cep e retorna o endereço do mesmo:

<html>
<head>
<title>CEP</title>
&lt;script type="text/javascript">
<!--
function validaCEP() {
  var cs=''+document.getElementById('cep').value+document.getElementById('cepdv').value;
  var inv="Por favor, informe um CEP válido e completo.";
  if (cs.length != 8) {
    alert(inv);
    return false;
  }
  for(i=0;i<8;i++) {
    dig = cs.charCodeAt(i);
    if ((dig < 48) || (dig > 57)) {
      alert(inv);
      return false;
    }
  }
  return true; 
}
//-->
</script>
</head>
<body>

<?php
function Cep() {
  $cepnum = (isset($_POST['cep'])?$_POST['cep']:'');
  $cepdv = (isset($_POST['cepdv'])?$_POST['cepdv']:'');
  $cepstr = $cepnum . $cepdv;
  if (strlen($cepstr) != 8) return false;
  for($i=0;$i<8;$i++) {
    $dig = ord($cepstr[$i]);
    if (($dig < 48) || ($dig > 57)) return false;
  }
  return $cepstr;
}

function busca_cep($cep){  
  $resultado = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($cep).'&formato=query_string');
  if(!$resultado){  
    $resultado = "&resultado=0&resultado_txt=erro+ao+buscar+cep";  
  }  
  parse_str($resultado, $retorno);   
  return $retorno;  
}

$cep = Cep();
if ($cep) 
  $endereco = busca_cep($cep);
?>

<form action="cep.php" method="post" onSubmit="return validaCEP()">
CEP: 
<input style="width:50px" type="text" id="cep" name="cep" maxlength="5" <?php if ($cep) echo 'value="'.substr($cep,0,5).'"'; ?>/>
-<input style="width:30px" type="text" id="cepdv" name="cepdv" maxlength="3" <?php if ($cep) echo 'value="'.substr($cep,5,3).'"'; ?>/>
<input type="submit" value="Buscar dados" />
</form>

<?php
if ($cep) {
  echo $endereco['tipo_logradouro'] . ' ' . $endereco['logradouro'] . "<br />\r\n";
  echo $endereco['bairro'] . "<br />\r\n";
  echo $endereco['cidade'] . ' - ' . $endereco['uf'] . "<br />\r\n";  
}
?>

</body>
</html>

Minha duvida, como fazer para que o resultado seja exibido quando tirar o focus do campo sem ter que clicar no botão submit ?

obrigado!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Opa consegui fazer retornar o php!

function pesquisa(valor){
url="teste.php?valor="+valor;
ajax(url);
}

 function ajax(url){
req = null;
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest){
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send(null);
}
// Procura por uma versão ActiveX (IE)
else if (window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req){
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send();
}
}
}

function processReqChange(){
if (req.readyState == 4){
if (req.status ==200){
document.getElementById('pagina').innerHTML = req.responseText;
}else{
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}
<input style="width:30px" type="text" id="cepdv" name="cepdv" maxlength="8"  Onblur="pesquisa(this.value)"/>
<div id="pagina"></div>
na pagina teste.php
function Cep() {
  $cepstr = $_GET["valor"];
  if (strlen($cepstr) != 8) return false;
  for($i=0;$i<8;$i++) {
    $dig = ord($cepstr[$i]);
    if (($dig < 48) || ($dig > 57)) return false;
  }
  return $cepstr;
}

function busca_cep($cep){  
  $resultado = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($cep).'&formato=query_string');
  if(!$resultado){  
    $resultado = "&resultado=0&resultado_txt=erro+ao+buscar+cep";  
  }  
  parse_str($resultado, $retorno);   
  return $retorno;  
}

$cep = Cep();
if ($cep) 
  $endereco = busca_cep($cep);
  
  
  echo $endereco['tipo_logradouro'] . ' ' . $endereco['logradouro'] . "<br />\r\n";
  echo $endereco['bairro'] . "<br />\r\n";
  echo $endereco['cidade'] . ' - ' . $endereco['uf'] . "<br />\r\n";  
?>

Agora como faço para fazer a validação dos campos validaCEP()?

Obrigado!

Editado por misterviralata
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...