SERVICO CEP - CODEIGNITER
26/06/2014
0
Thiago Ceconelo
Posts
26/06/2014
Joel Rodrigues
26/06/2014
Thiago Ceconelo
Então olha só no php puro funciona o problema esta no codeigniter.
Não conseguo fazer funcionar lá.
26/06/2014
Thiago Ceconelo
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
26/06/2014
Thiago Ceconelo
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
27/06/2014
Joel Rodrigues
O que você quer é acessar cada campo de "data" para exibi-los nos inputs?
27/06/2014
Thiago Ceconelo
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.
Clique aqui para fazer login e interagir na Comunidade :)