Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Criei um formulário onde o usuário preenche o campo cep e o restante é baseado na pesquisa que é feito
(Rua, bairro, cidade, estado, etc.)
O problema é o seguinte, quando o sistema ta rodando no meu pc (WampServer) ele funciona perfeitamente, agora quando passo pro servidor ele ão retorna os dados.
Alguém pode me ajudar?
formulário.php
<script type="text/javascript">
$('#cep').live('change', function(){
var cep = $("#cep").val();
$(".retorno").html('<img src="images/loader.gif" alt="" />');
$.ajax({
type: "POST",
url: "cep.php",
data: "cep="+ cep,
dataType: 'json',
success: function(data){
$(".retorno").html("");
if(data.sucesso == 1){
$('#endereco').val(data.endereco);
$('#bairro').val(data.bairro);
$('#cidade').val(data.cidade);
$('#estado').val(data.estado);
$('#numero').focus();
}
}
});
return false;
});
</script>
cep.php
<?php
sleep(2);
$cep = $_POST['cep'];
$reg = simplexml_load_file("http://cep.republicavirtual.com.br/web_cep.php?formato=xml&cep=" . $cep);
$dados['sucesso'] = (string) $reg->resultado;
$dados['endereco'] = (string) $reg->tipo_logradouro.' '.$reg->logradouro;
$dados['bairro'] = (string) $reg->bairro;
$dados['cidade'] = (string) $reg->cidade;
$dados['estado'] = (string) $reg->uf;
echo json_encode($dados);
?>@charleskx
Não sei se ainda ta com problemas, mas segue uma dica.
Como você ta fazendo a consulta usando formato XML, pode ter divergência no charset do seu código com o do conteúdo retornado na consulta.
Pelo que vi, o XML retornado nessa consulta não define charset, e aparentemente ta vindo com ISO-8859-1.
Já tive problemas em que quando o XML ta com charset errado, o PHP não consegue "mastigar" o xml transformando em objeto.
Pra você conseguir identificar melhor onde ta o erro, faz uma simulação direto no PHP dando print no resultado completo pra verificar. E depois de constatar que ta retornando certo no PHP faz um debug no JavaScript dando alert ou console.log no conteúdo retornado pelo teu arquivo PHP.
Se for uma opção pra você, puxa a URL com outra função usando o formato JSON. Se precisar decodificar ele pra salvar no banco de dados, é só usar o inverso da função que você ta usando pra codificar, json_decode();
Valeu
provavelmente pode ser um erro de JS para saber se é isso você deve ir no chrome por exemplo pressionar f12 e então ir no console
e tentar preencher o cep caso apareça algum erro no console é o JavaScript então você depurar, este inspecionador do chrome é muito bom para fazer testes em JS caso queira um depurador mais avançado use o firebug disponível para firefox o próprio firefox também tem seu depurador que pode ser usado pressionando f12
Olhando a cara do seu código de duas uma ou o servidor está dando um conflito no php que não acontece localmente ou o erro está na url do ajax do seu formulario.php
faz estes testes e saberá.