Ir para conteúdo

Arquivado

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

mruoppolo

Adaptar leitura de código

Recommended Posts

Galera tudo blz??

 

Preciso de uma ajudinha pra adaptar um código javascript, eu tenho utilizava na minha loja virtual um webservice da republica virtual pra buscar o endereço através do CEP que o usuário digitou no meu carrinho de compras e preencher o formulário.

 

Porém comecei a utilizar o SSL e o site da republica virtual não esta funcionado, ai resolvi começar a utilizar um webservice direto do site dos correios, porém, o meu script que faz a leitura dos dados esta construído para o padrão da republica virtual e por isso não funciona com a saída de dados dos correios.

 

A URL do meu webservice é a seguinte: http://www.marcelloruoppolo.in/startak/cep.php?cep=01310-000

 

Ele tras os dados direto do site do correio na seguinte forma:

 

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

 

Enquanto que os dados da republica virtual vinham 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' }

 

Por causa disso o meu código javascript não lê mais os dados, alguém pode me ajudar a modificar, por favor, o código é este aqui:

<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
	var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));

	$.getScript("http://www.marcelloruoppolo.in/startak/cep.php?cep="+cep, function(){
		if(resultadoCEP["resultado"] == "1"){
			$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
			$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
			$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));

			$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
			$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
				$.ajax({
					url: 'index.php?route=account/register/country&country_id=30',
					dataType: 'json',
					beforeSend: function() {
						$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/graveagudo2012/image/loading.gif" alt="" /></span>');
					},
					complete: function() {
						$('.wait').remove();
					},			
					success: function(json) {
						if (json['postcode_required'] == '1') {
							$('#postcode-required').show();
						} else {
							$('#postcode-required').hide();
						}

						var html = '<option value=""><?php echo $text_select; ?></option>';

						if (json['zone'] != '') {
							for (i = 0; i < json['zone'].length; i++) {
								html += '<option value="' + json['zone'][i]['zone_id'] + '"';
								
								if (json['zone'][i]['zone_id'] == zone_id) {
									html += ' selected="selected"';
								}
				
								html += '>' + json['zone'][i]['name'] + '</option>';
							}
						} else {
							html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';
						}

						$('select[name=\'zone_id\']').html(html);
					}
				});
			});
		}
	});
});
});	
</script>

Muito obrigado galera, um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hugo, valew cara, na verdade acabou que eu consegui de uma maneira muito fácil, eu só editei o meu webservice em php para aparecer uma variável java script resultaCEP no começo do código, ai o script javascript fez todo o resto sozinho, a única dúvida agora é a seguinte, ele não esta pegando o estado

 

Eu vi que o sistema esta enviando o estado, porém ele não esta executando a URL que faz com que o estado seja autocompletado, seria as seguintes linhas do script:

$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
								$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
									$.ajax({
										url: 'index.php?route=account/register/country&country_id=30',
										dataType: 'json',
										beforeSend: function() {
											$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/graveagudo2012/image/loading.gif" alt="" /></span>');
										},
										complete: function() {
											$('.wait').remove();
										},			
										success: function(json) {
											if (json['postcode_required'] == '1') {
												$('#postcode-required').show();
											} else {
												$('#postcode-required').hide();
											}
	
											var html = '<option value=""><?php echo $text_select; ?></option>';
	
											if (json['zone'] != '') {
												for (i = 0; i < json['zone'].length; i++) {
													html += '<option value="' + json['zone'][i]['zone_id'] + '"';
													
													if (json['zone'][i]['zone_id'] == zone_id) {
														html += ' selected="selected"';
													}
									
													html += '>' + json['zone'][i]['name'] + '</option>';
												}
											} else {
												html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';
											}
	
											$('select[name=\'zone_id\']').html(html);
										}
									});

Parece que a linha:

$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){

Não esta sendo executada direito, você tem ideia do que seja??

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara sai debugando o código pelo console Ctrl + Shift + j

$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);

// verifica como que vei o uf
console.log(unescape(resultadoCEP['uf']));

$.post('index.php?...=' + unescape(resultadoCEP['uf']), function(zone_id){
	
	// verifica o retorno do autocomplete
	console.log(zone_id);

	$.ajax({
		...			
		success: function(json) {
			
			// verifica o resultado final
			console.log(json);

....

e poste aqui o resultado do console

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, verifiquei que deu o seguinte erro:

 

POST http://startak2.brs.pw/index.php?route=account/register/estado_autocompletar&estado=SP 404 (not found)

 

Ai quando fui analisar eu percebi que esta URL esta estranha, no caso não mostra como um arquivo de URL normal, ele não tem uma formato de arquivo tipo .php ou .html, porém eu vi que a URL que seleciona o pais também esta dessa forma.

 

Ai fui até a pasta account para olhar a pasta register e descobri que ela não existe e também não tem nenhum arquivo la com este nome.

 

Acho que agora eu vou precisar realmente fuçar o servidor pra descobrir do que se trata isso.

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.