Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mruoppolo

Modificar ordem de saída de dados

Recommended Posts

opa blz??

 

Estou com uma dúvida que acredito que seja simples, eu tenho um webservice que busca no site dos correios um endereço pelo CEP, esta funcionando perfeito, porém, eu preciso mudar a forma como este dado é exibido, tipo assim:

 

No meu webservice a saída é a seguinte:

 

{"logradouro":"Avenida Paulista - at\u00e9 610 - lado par","bairro":"Bela Vista","cep":"01310000","cidade":"S\u00e3o Paulo","uf":"SP"}

 

Eu preciso que a saída seja assim:

 

var resultadoCEP = { 'uf' : 'SP', 'cidade' : 'S%E3o%20Paulo', 'bairro' : 'Bela%20Vista', 'tipo_logradouro' : 'Avenida', 'logradouro' : 'Paulista', 'resultado' : '1', 'resultado_txt' : 'sucesso%20-%20cep%20completo' }

 

pro meu script poder tratar os dados

 

meu webservice é assim:

<?php 
include('phpQuery-onefile.php');

function simple_curl($url,$post=array(),$get=array()){
	$url = explode('?',$url,2);
	if(count($url)===2){
		$temp_get = array();
		parse_str($url[1],$temp_get);
		$get = array_merge($get,$temp_get);
	}

	$ch = curl_init($url[0]."?".http_build_query($get));
	curl_setopt ($ch, CURLOPT_POST, 1);
	curl_setopt ($ch, CURLOPT_POSTFIELDS, http_build_query($post));
	curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	return curl_exec ($ch);
}

$cep = $_GET['cep'];

$html = simple_curl('http://m.correios.com.br/movel/buscaCepConfirma.do',array(
	'cepEntrada'=>$cep,
	'tipoCep'=>'',
	'cepTemp'=>'',
	'metodo'=>'buscarCep'
));

phpQuery::newDocumentHTML($html, $charset = 'utf-8');

$dados = 
array(
	'logradouro'=> trim(pq('.caixacampobranco .resposta:contains("Logradouro: ") + .respostadestaque:eq(0)')->html()),
	'bairro'=> trim(pq('.caixacampobranco .resposta:contains("Bairro: ") + .respostadestaque:eq(0)')->html()),
	'cidade/uf'=> trim(pq('.caixacampobranco .resposta:contains("Localidade / UF: ") + .respostadestaque:eq(0)')->html()),
	'cep'=> trim(pq('.caixacampobranco .resposta:contains("CEP: ") + .respostadestaque:eq(0)')->html())
);

$dados['cidade/uf'] = explode('/',$dados['cidade/uf']);
$dados['cidade'] = trim($dados['cidade/uf'][0]);
$dados['uf'] = trim($dados['cidade/uf'][1]);
unset($dados['cidade/uf']);

die(json_encode($dados));

URL do webservice: http://www.marcelloruoppolo.in/startak/cep.php?cep=01310-000

 

Alguém ai sabe como modificar, ou pelo menos me dar uma luz por favor??

 

Valew galera :D

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estou recebendo a seguinte mensagem aqui:

Requisição cross-origin bloqueada: A política de mesma origem (Same Origin Policy) impede a leitura do recurso remoto em http://www.marcelloruoppolo.in/startak/cep.php?cep=01310-000. (Motivo: o cabeçalho CORS 'Access-Control-Allow-Origin' não está presente).

Requisição Cross não permitida.

 

E com jsonp recebo esta:

SyntaxError: missing ; before statement

Estou tentando com jQuery:

$(function(){
    $.ajax({
        type: 'get',
        crossDomain: true,
        dataType: 'jsonp',
        url : 'http://www.marcelloruoppolo.in/startak/cep.php?cep=01310-000',
        success: function(data){
            console.log(data);
        }
    });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Olá, estou recebendo a seguinte mensagem aqui:

Requisição Cross não permitida.

 

E com jsonp recebo esta:

Estou tentando com jQuery:

$(function(){
    $.ajax({
        type: 'get',
        crossDomain: true,
        dataType: 'jsonp',
        url : 'http://www.marcelloruoppolo.in/startak/cep.php?cep=01310-000',
        success: function(data){
            console.log(data);
        }
    });
});

 

Cara não entendi muito bem o que você falou, mas se eu clicar no link do meu site ele ja printa direto as informações, e apenas estou querendo modificar a forma como o javascript vai mostrar elas, tipo a colocar os dados na ordem correta e colocar os assim "nome : parametro"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não estou entendendo como você quer receber e exibir isso ai. Você pega o json do web service com php? Caso positivo, depois tu quer fazer o q com ele? Acredito q sua duvida seja PHP não JS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, na verdade pode até ser que seja PHP, o que eu preciso é alterar estas linhas aqui:

$dados = 
array(
	'logradouro'=> trim(pq('.caixacampobranco .resposta:contains("Logradouro: ") + .respostadestaque:eq(0)')->html()),
	'bairro'=> trim(pq('.caixacampobranco .resposta:contains("Bairro: ") + .respostadestaque:eq(0)')->html()),
	'cidade/uf'=> trim(pq('.caixacampobranco .resposta:contains("Localidade / UF: ") + .respostadestaque:eq(0)')->html()),
	'cep'=> trim(pq('.caixacampobranco .resposta:contains("CEP: ") + .respostadestaque:eq(0)')->html())
);

$dados['cidade/uf'] = explode('/',$dados['cidade/uf']);
$dados['cidade'] = trim($dados['cidade/uf'][0]);
$dados['uf'] = trim($dados['cidade/uf'][1]);
unset($dados['cidade/uf']);

para que quando o sistema printar o resultado ele apareça exatamente assim:

 

var resultadoCEP = { 'uf' : 'SP', 'cidade' : 'S%E3o%20Paulo', 'bairro' : 'Bela%20Vista', 'tipo_logradouro' : 'Avenida', 'logradouro' : 'Paulista', 'resultado' : '1', 'resultado_txt' : 'sucesso%20-%20cep%20completo' }

 

O meu esta aparecendo assim:

 

{"logradouro":"Avenida Paulista - at\u00e9 610 - lado par","bairro":"Bela Vista","cep":"01310000","cidade":"S\u00e3o Paulo","uf":"SP"}

 

Tipo eu preciso que os primeiros dados a aparecer seja o estado, cidade, bairro, tipo logradouro e assim por diante igualzinho o que esta no exemplo acima.

 

É que eu tenho um script que lê estes dados e preenche o formulário, mas para isto eu preciso que os dados sejam apresentados desta forma ai que eu coloquei.

 

Entendeu??

 

Valew :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho q estou começando a entender, na verdade vc é que gera o web service e não apenas o consome e quer modificar a forma como ele é gerado. Isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, kkk, eu não sei, tipo, eu peguei o código pronto da internet, eu preciso que a forma como ele seja mostrado na hora que for entregar os dados para o outro script seja essa:

 

var resultadoCEP = { 'uf' : 'SP', 'cidade' : 'S%E3o%20Paulo', 'bairro' : 'Bela%20Vista', 'tipo_logradouro' : 'Avenida', 'logradouro' : 'Paulista', 'resultado' : '1', 'resultado_txt' : 'sucesso%20-%20cep%20completo' }

 

e não esta, que é a que ele esta mostrando:

 

{"logradouro":"Avenida Paulista - at\u00e9 610 - lado par","bairro":"Bela Vista","cep":"01310000","cidade":"S\u00e3o Paulo","uf":"SP"}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.