SERVICO CEP - CODEIGNITER

26/06/2014

0

PHP

Alguém pode me ajudar com o serviço de CEP da dev para uso no codeigniter?
Thiago Ceconelo

Thiago Ceconelo

Responder

Posts

26/06/2014

Joel Rodrigues

Opa, na página do serviço tem os códigos de exemplo para download, inclusive em PHP: https://www.devmedia.com.br/devware/cep/view/
Responder

26/06/2014

Thiago Ceconelo

Joel obrigado pelo retorno,
Então olha só no php puro funciona o problema esta no codeigniter.
Não conseguo fazer funcionar lá.
Responder

26/06/2014

Thiago Ceconelo

Joel vê se pode me ajudar,
vou explicar o que estou fazendo.

Controller.

public function consultarCep {

$ch = curl_init() or die(curl_error($ch));
$getdata = http_build_query(array(
'cep' => $cep,
'chave' => minhachave',
//insira aqui sua chave
'formato' => $formato));
$options = array(CURLOPT_URL => "https://www.devmedia.com.br/devware/cep/service/?$getdata", CURLOPT_RETURNTRANSFER => 1);
curl_setopt_array($ch, $options);
$result = curl_exec($ch) or die("<p>ERRO AO FAZER A REQUISIÇÃO </p>" . curl_error($ch));
curl_close($ch);

echo $result;


}

view.

<script language="JavaScript">
var controller = 'nomecontroller';
var base_url = '<?php echo site_url(); //you have to load the "url_helper" to use this function ?>';

function consultaCep(){
var cep = $("input[name=cep]").val();
$.ajax({
'url' : base_url + '/' + controller + '/consultarCep/' + cep,
'type' : 'GET', //the way you want to send data to your URL
'data' : cep,
'success' : function(data){ //probably this request will return anything, it'll be put in var "data"
var container = $('#container'); //jquery selector (get element by id)
if(data){
container.html(data);
}
}
});
}

</script>

Até aqui esta funcionando esse objeto container.html(data) esta printando dentro da div que criei cujo id é container.
O que quero fazer é substitutir os inputs que tenho nessa view com o retorno vindo de data.
Como posso fazer isso?

GRato
Responder

26/06/2014

Thiago Ceconelo

Joel vê se pode me ajudar,
vou explicar o que estou fazendo.

Controller.

public function consultarCep {

$ch = curl_init() or die(curl_error($ch));
$getdata = http_build_query(array(
'cep' => $cep,
'chave' => minhachave',
//insira aqui sua chave
'formato' => $formato));
$options = array(CURLOPT_URL => "https://www.devmedia.com.br/devware/cep/service/?$getdata", CURLOPT_RETURNTRANSFER => 1);
curl_setopt_array($ch, $options);
$result = curl_exec($ch) or die("<p>ERRO AO FAZER A REQUISIÇÃO </p>" . curl_error($ch));
curl_close($ch);

echo $result;


}

view.

<script language="JavaScript">
var controller = 'nomecontroller';
var base_url = '<?php echo site_url(); //you have to load the "url_helper" to use this function ?>';

function consultaCep(){
var cep = $("input[name=cep]").val();
$.ajax({
'url' : base_url + '/' + controller + '/consultarCep/' + cep,
'type' : 'GET', //the way you want to send data to your URL
'data' : cep,
'success' : function(data){ //probably this request will return anything, it'll be put in var "data"
var container = $('#container'); //jquery selector (get element by id)
if(data){
container.html(data);
}
}
});
}

</script>

Até aqui esta funcionando esse objeto container.html(data) esta printando dentro da div que criei cujo id é container.
O que quero fazer é substitutir os inputs que tenho nessa view com o retorno vindo de data.
Como posso fazer isso?

Por que o que esta acontecendo é que esta vindo o html todo como chamado mas quero só trazer os valores do xml e substitui-los no form.

GRato
Responder

27/06/2014

Joel Rodrigues

Vejamos se entendi. O trecho "container.html(data)" está exibindo o retorno corretamente, só que sem formatação, certo?
O que você quer é acessar cada campo de "data" para exibi-los nos inputs?
Responder

27/06/2014

Thiago Ceconelo

Isso mesmo Joel,
mas eu consegui resolver.
Agradeço sua retorno.
Abaixo segue o que fiz, só para completar o código acima:

if (data) {
$(document).ready(function() {
$(data).find('webservicecep').each(function() {

var sCidade = $(this).find('cidade').text();
var sEstado = $(this).find('estado').text();
var sRua = $(this).find('logradouro').text();
var sBairro = $(this).find('bairro').text();
var sStatus = $(this).find('resultado_txt').text();
$("input[name=cidade]").val(sCidade);
$("input[name=logradouro]").val(sRua);
$("input[name=bairro]").val(sBairro);
$("input[name=estado]").val(sEstado);

if (sStatus == "falha - CEP invalido") {

alert(sStatus);

}

});


});

Valeu.
Abraço.
Responder

28/06/2014

William

Encerrando o tópico!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar