+1

Cálculo do frete via SEDEX com PHP e AJAX

criado por Aderbal Nunes em 15/04/2007 8:35pm
Iremos usar a função ajax criada no arquivo anterior para saber se o navegador tem suporte ao serviço. Nesse caso com o arquivo mãe do nosso tutorial. É ele quem vai ser invocado pelo usuário.

Arquivo calculoFrete.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cálculo do Frete</title>
</head>
<script language="javascript" src="ajax.js"></script>
<script>
ajax1 = new ajax;
function calculoFrete()
{
    var cepOrigem 	= document.getElementById("cepOrigem").value;
    var cepDestino	= document.getElementById("cepDestino").value;
    var peso = 1;

    ajax1.open("POST", "calcularFrete.php", true );
    ajax1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax1.send("cepOrigem="+cepOrigem+"&cepDestino="+cepDestino);

    ajax1.onreadystatechange = function() { 
        if (ajax1.readyState == 4) {
            document.getElementById("result").innerHTML = ajax1.responseText;
        } else {
            document.getElementById("result").innerHTML = "Aguarde, calculando...";
        }
    }
}
</script>
<body>

<form method="post" action="">
<table width="322" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      CEP Origem: 
      <input name="cepOrigem" type="text" id="cepOrigem">
      <br />
      CEP Destino: 
      <input name="cepDestino" type="text" id="cepDestino">
      <br />
      <br />
      <input name="postok" type="button" id="postok" value="Calcular" onClick="calculoFrete();">
    </td>
  </tr>
</table>
</form> 
<div id="result"></div>

</body>
</html>


Comentários:

Mostrando 1 - 10 de 11 comentários
adrianno disse:
como faço para pegar o peso de uma variavel do meu carrinho e ela seja adicioanda ao campo "peso" sem que eu tenha que digitar manualmente?
17/04/2009 4:23am (~10 anos atrás)

Renata Costa disse:
Estou batendo cabeça com o Ajax e um dos motivos é este cálculo.
Foi bem legal!!!!
Meu único problema é um erro que continua dando:
Warning: file(http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=http://172.24.22.59/renata/tarsus/calculofrete.htm&servico=40010&cepOrigem=24360060&cepDestino=22231140&peso=1&MaoPropria=n&valorDeclarado=&avisoRecebimento=N) [function.file]: failed to open stream: Connection refused in /producao/html/renata/tarsus/calcularfrete.php on line 21

Warning: Invalid argument supplied for foreach() in /producao/html/renata/tarsus/calcularfrete.php on line 25

AH! E dica onde achar um material legal para minhas cabeçadas.

Um abraço
16/08/2007 1:20pm (~12 anos atrás)

Esse artigo é muito bom, será útil para muitos usuários do PHP.
Parabéns...
12/06/2007 7:10am (~12 anos atrás)

Amigo ao invez de usar essa gambiarra pra ler o arquivo inteiro e melhor vc ler um xml fica muito mais rapido.....
http://www.correios.com.br/encomendas/precos/calculo.cfm?cepOrigem=15085893&cepDestino=15040190&peso=3&MaoPropria=N&avisoRecebimento=N&resposta=xml
Assim que der posto um novo topico com a versão xml
Os codigos dos Serviços...
40215 - SEDEX 10
40010 - SEDEX CONVENCIONAL
40096 - SEDEX
40045 - SEDEX A COBRAR
40290 - SEDEX HOJE
41017 - Encomenda Normal
02/05/2007 11:08am (~12 anos atrás)

Aderbal Nunes disse:
Valeu cara eu conheço sim e já usei, na verdade é mais pra mostrar o AJAX do que a aplicação =)

valeu mesmo
19/04/2007 2:57pm (~12 anos atrás)

Aderbal não sei se você conhece o xajax (http://www.xajaxproject.org/), mas ele já faz toda essa parte de ajax que você escreveu na munheca aí. Iria economizar umas duas páginas no seu artigo! Mas valeu pela iniciativa.
O bom é que a galera que não conhece como o ajax funciona passa a conhecer. Eu utilizo essa url dos correios juntamente com outra locaweb para calcular o frete mas o cálculo fica um pouco lento, mesmo utilizando ajax e o principal problema é que a conexão com essa url está sempre falhando. O ideal é comprar a tabela de frete dos correios.

Um abraço
19/04/2007 10:30am (~12 anos atrás)

André Taiar disse:
Ótimo artigo ADERBAAAAAAAAAAAAAAL!

Uma bela aplicação! Parabéns!
18/04/2007 3:27pm (~12 anos atrás)

Aderbal Nunes disse:
a consulta se torna mais lenta, existe as vantagens! vou por mas quem quizer pode usar de qualquer forma! VALEU vcs

=)
16/04/2007 7:07am (~12 anos atrás)

Aderbal Nunes disse:
Rhácius obrigado pelo comentário =) eu utilizei aqui no meu código de um e-commerce, mas esqueci de alterar aqui, valeu por lembrar =)

Abraço
16/04/2007 6:29am (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)