Bom pessoal, estou precisando muito de ajuda para implementar um calculo de frete em meu site, porem independente do pagseguro ou qualquer outro similar.
então encontrei um código que aparentemente é enxuto, são 4 partes que vou listar aqui. copiei os códigos para o Dreamweaver sendo calcularFrete.php, calculoFrete.html, ajax.js e calculoFrete.js.
No meu site, quando entro o cep de destino, ele não retorna o valor do frete. Já tentei de tudo, mas não sei onde mais mexer pra funcionar.
Se for possível peço ajuda para fazer este código funcionar.
cód. calcularFrete.php
<?php
// resgate das variáveis do formulário que aciona o frete
$srv = 40010;
$cepOrigem = $_GET["cepOrigem"];
$cepDestino = $_GET["cepDestino"];
$peso = $_GET["peso"];
// execução da URL dos correios
$url = "http://www.correios.com.br/encomendas/precos/calculo.cfm?servico=".$srv."&cepOrigem=".$cepOrigem."&cepDestino=".$cepDestino."&peso=".$peso."&MaoPropria=N&avisoRecebimento=N&resposta=xml";
// inicio a abertura da opção para o php
ini_set("allow_url_fopen", 1);
// captura as linhas da URL retornada
$fonte = file($url);
// cálculo do frete
foreach($fonte as $www) {
$bsc = "/\<preco_postal>(.*)\<\/preco_postal>/";
if (preg_match($bsc, $www, $retorno)) {
echo "R$ ".number_format($retorno[1], 2, ',', '.');
} // fim do if
} // fim do foreach
cód calculoFrete.js
// Script para a realização da Busca Instantanêa com Ajax
// Função para iniciar o Ajax no browser do cliente
function openAjax() {
var ajax;
try{
// XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
ajax = new XMLHttpRequest();
}catch(ee){
try{
// Para o IE da MS
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
// Para o IE da MS
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
ajax = false;
}
}
}
return ajax;
}
// Função que realiza a busca instantânea e posiciona em uma div na página principal
function calculoFrete() {
if( document.getElementById ) { // Para os browsers complacentes com o DOM W3C.
var cepOrigem = document.getElementById('cepOrigem').value;
var cepDestino = document.getElementById('cepDestino').value;
var peso = document.getElementById('peso').value;
// div que exibirá o resultado da busca.
var exibeResultado = document.getElementById('result');
// Verifica se o campo não está vazio, ou se foi digitado no mínimo nove caracteres.
if(cepOrigem !== "" && cepOrigem !== null && cepOrigem.length >= 9) {
// Inicia o Ajax.
var ajax = openAjax();
var URL = "calcularFrete.php?cepOrigem="+cepOrigem+"&cepDestino="+cepDestino+"&peso="+peso;
ajax.open("GET", URL, true);
ajax.onreadystatechange = function() {
// Quando estiver carregando, exibe: carregando...
if(ajax.readyState == 1) {
exibeResultado.innerHTML = "<span class='texto'>Calculando Frete...</span>";
}
// Quando estiver tudo pronto.
if(ajax.readyState == 4) {
if(ajax.status == 200) {
var resultado = ajax.responseText;
// Coloca o resultado (da busca) retornado pelo Ajax nessa variável (var resultado).
// Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
resultado = resultado.replace(/\+/g," ");
// Resolve o problema dos acentos
resultado = unescape(resultado);
exibeResultado.innerHTML = resultado;
} else {
exibeResultado.innerHTML = "<span class='text'>Erro realizando busca instantânea</span> ";
}
}
}
// submete
ajax.send(null);
}
}
}
cód ajax.js
// JavaScript Document
function ajax()
{
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch(ex) {
try {
return new XMLHttpRequest();
} catch(exc) {
alert("Esse browser não tem recursos para uso do AJAX");
return false;
}
}
}
}
e por ultimo
cod calculoFrete.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cálculo do Frete</title>
<!-- Simples css para formatar o resultado !-->
<style type="text/css">
<!--
.texto {font-family: Tahoma}
-->
</style>
<link href="texto" rel="stylesheet" type="text/css">
</head>
<!-- Arquivos JS que fazem parte do script !-->
<script language="javascript" src="js/ajax.js"></script>
<script language="javascript" src="js/calculoFrete.js"></script>
<body>
<form method="get" action="">
<table width="988" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="408">
CEP Destino:
<input name="cepDestino" type="text" id="cepDestino">
<input name="postok" type="button" id="postok" value="Calcular" onClick="calculoFrete();">
<input name="cepOrigem" type="hidden" id="cepOrigem" value="74830-130">
<input name="peso" type="hidden" id="peso" value="10"></td>
<td width="580"><div class="texto" id="result"></div></td>
</tr>
</table>
</form>
</body>
</html>
como orientação do desenvolvedor do código, coloquei os arquivos .js ema uma pasta nomeada js.
Espero conseguir ajuda com alguem aqui.
Obrigado.