Cálculo do frete via SEDEX com PHP e AJAX
      Vamos analisar agora. Na linha 6 estou incluindo em nosso arquivo o javascript ajax.js para podermos usar.
Para isso temos uma função em javascript que faz a ligação do arquivo que vai realmente fazer o cálculo e esse nosso HTML puro aqui. Vejamos.
(comentada)
    
  
    
    
  Para isso temos uma função em javascript que faz a ligação do arquivo que vai realmente fazer o cálculo e esse nosso HTML puro aqui. Vejamos.
(comentada)
<script type="text/javascript">
// crio a variável que vai utilizar nosso ajax.
ajax1 = new ajax;
function calculoFrete()
{
    // captura o valor do cep de origem
    var cepOrigem     = document.getElementById("cepOrigem").value;
    // captura o valor do cep de destino
    var cepDestino    = document.getElementById("cepDestino").value;
    // defino o peso da embalagem
    var peso = 1;
    // abro o arquivo que vai calcular nosso frete
    ajax1.open("POST", "calcularFrete.php", true );
    // seto o header de resposta
    ajax1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    // envia os dados para o php
    ajax1.send("cepOrigem="+cepOrigem+"&cepDestino="+cepDestino);
    
    // aqui vamos testar o estado da nossa requisição no nosso caso:
    // status = 4 concluido
    // != de 4 em andamento.
    ajax1.onreadystatechange = function() {
        if (ajax1.readyState == 4) {
            // jogo o resultado encontrado no DIV em nosso html
            document.getElementById("result").innerHTML = ajax1.responseText;
        } else {
            // por enquanto, aguardando status 4....
            document.getElementById("result").innerHTML = "Aguarde, calculando...";
        }
    }
}
</script>
    
                  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
        (~16 anos atrás)
      
    
                  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
      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
        (~18 anos atrás)
      
    
                  Esse artigo é muito bom, será útil para muitos usuários do PHP.
Parabéns...
      Parabéns...
        12/06/2007 7:10am
        (~18 anos atrás)
      
    
        02/05/2007 11:11am
        (~18 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
      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
        (~18 anos atrás)
      
    
                  Valeu cara eu conheço sim e já usei, na verdade é mais pra mostrar o AJAX do que a aplicação =)
valeu mesmo
      valeu mesmo
        19/04/2007 2:57pm
        (~18 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
      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
        (~18 anos atrás)
      
    
                  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
        (~18 anos atrás)
      
    
                  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
      Abraço
        16/04/2007 6:29am
        (~18 anos atrás)
      
    
