Olá amigos preciso da ajuda de vocês , pois o meu sistema não está fazendo o cálculo dos produtos corretamente( está dando pra menos) abaixo o js que faz o cálculo:
<ul><?php
if (isset($_POST['cep-destino'])){
// Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
define('PESO',7.00);
define('EMBALAGEM',2.00);
// Valor adicional no envio como custo de embalagem.
define('COMPRIMENTO',60);
define('ALTURA',15);
define('LARGURA',20);
if($_POST) {
// Código do Serviço que deseja calcular, veja tabela acima:
if ($_POST['servico']) {
$cod_servico = $_POST['servico'];
}
// CEP de Origem, em geral o CEP da Loja
$cep_origem = '13360-000';
// CEP de Destino, você pode passar esse CEP por GET ou POST vindo de um formulário
$cep_destino = $_POST['cep-destino'];
$cep_destino = @eregi_replace("([^0-9])","",$cep_destino);
// Neste exemplo estamos usando apenas PAC e SEDEX. Caso seja necessário, utilize outras opções.
switch ($cod_servico) {
case 41106:
$nome_servico = " PAC ";
break;
case 40010:
$nome_servico = " SEDEX ";
break;
}
}
}
?>
<form id="form-pesquisa-repasse" action="" method="post" class="formMain formSearch wsizep100" >
<fieldset>
<legend>Pesquisar valor do frete!</legend>
<label for="servico" class="wsize015">
<span class="nameField">Envio</span>
<select id="servico" name="servico" title="Serviços dos Correios" class="select" tabindex="1">
<option value="41106">PAC</option>
<option value="40010">SEDEX</option>
</select>
</label>
<label class="wsize010" for="cep-destino">
<span class="nameField">CEP Destino</span>
<input id="cep-destino" class="text" type="text" value="<?php echo @$cep_destino ?>" maxlength="9" title="CPF destino" name="cep-destino" tabindex="2"/>
</label>
<label for="pesquisar" class="wsize010">
<input type="submit" id="pesquisar" name="pesquisar" tabindex="3" class="button inline" value="Pesquisar" />
</label>
</fieldset>
</form>
<?php
// Caso venha valor de resposta é numerio e maior que o custo da embalagem senão ocorreu algum erro na solicitação.
if(is_numeric(@$frete) and (@$frete > @$embalagem)) {
// Quando encontra o valor da postagem, exibe na página formatando em padrão de moeda 10,89
// Caso você não queira formatar basta comentar a linha abaixo que será exibido assim 10.89 e basta executar o comando abaixo
$frete = number_format($frete,2,',','.');
Por exemplo se o total é : R$ 3.696,00 apresenta no total: R$ 1.848,00, ou seja isso so acontece quando altero a quantidade no botao , se comprar direto funciona, o que fazer?
Pergunta
Clayton
Olá amigos preciso da ajuda de vocês , pois o meu sistema não está fazendo o cálculo dos produtos corretamente( está dando pra menos) abaixo o js que faz o cálculo:
$(document).ready(function (e) {
$('input').change(function (e) {
id = $(this).attr('rel');
$index = this.value;
$preço = $('font#preço'+id).html().replace("R$ ",'');
console.log($preço);
$val = ($preço*$index).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');;
$('font#sub'+id).html('R$ '+$val);
clearInterval(timer);
});
});
e o script que finaliza a compra:
<?php
include_once("../funcao/conecta.php");
session_start();
if(!isset($_SESSION['shop'])){
$_SESSION['shop'] = array();
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Endereço e Forma de pagamento</title>
<script type="text/javascript" src="../js/jquery-1.5.2.min.js"></script>
<script type="text/javascript">
$(document).ready (function() {
$("#cardradius") .click (function() {
$(".card") .css ("visibility" ,"visible");
$(".boleto") .css ("visibility" ,"hidden");
$(".mercado") .css ("visibility" ,"hidden");
$(".pagseguro") .css ("visibility" ,"hidden");
});
$("#boletoradius") .click (function() {
$(".card") .css ("visibility" ,"hidden");
$(".boleto") .css ("visibility" ,"visible");
$(".mercado") .css ("visibility" ,"hidden");
$(".pagseguro") .css ("visibility" ,"hidden");
});
$("#mercadoradius") .click (function() {
$(".card") .css ("visibility" ,"hidden");
$(".boleto") .css ("visibility" ,"hidden");
$(".mercado") .css ("visibility" ,"visible");
$(".pagseguro") .css ("visibility" ,"hidden");
})
$("#pagseguroradius") .click (function() {
$(".card") .css ("visibility" ,"hidden");
$(".boleto") .css ("visibility" ,"hidden");
$(".mercado") .css ("visibility" ,"hidden");
$(".pagseguro") .css ("visibility" ,"visible");
})
});
</script>
</head>
<body>
<div id="principal">
<div id="conteudo">
<div class="progressend"><div align ="center"><img src="../imagens/13.png" class="progend" ></div>
<div class="textprogress"> <li>IDENTIFICAÇÃO</li><li>ENTREGA E PAGAMENTO</li><li>CONFIRMAÇÃO</li> </div>
<div class="enderecamento">
<div class="textoprog"> <h2>1</h2> Endereço de entrega e cobrança </div>
<ul><?php
if (isset($_POST['cep-destino'])){
// Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
define('PESO',7.00);
define('EMBALAGEM',2.00);
// Valor adicional no envio como custo de embalagem.
define('COMPRIMENTO',60);
define('ALTURA',15);
define('LARGURA',20);
if($_POST) {
// Código do Serviço que deseja calcular, veja tabela acima:
if ($_POST['servico']) {
$cod_servico = $_POST['servico'];
}
// CEP de Origem, em geral o CEP da Loja
$cep_origem = '13360-000';
// CEP de Destino, você pode passar esse CEP por GET ou POST vindo de um formulário
$cep_destino = $_POST['cep-destino'];
$cep_destino = @eregi_replace("([^0-9])","",$cep_destino);
// URL de Consulta dos Correios
$correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?StrRetorno=xml&nCdServico={$cod_servico}&nVlPeso=" . PESO . "&sCepOrigem={$cep_origem}&sCepDestino={$cep_destino}&nCdFormato=1&nVlComprimento=" . COMPRIMENTO . "&nVlAltura=" . ALTURA . "&nVlLargura=" . LARGURA;
// Capta as informações da página dos Correios
$correios_info = file($correios);
// Processa as informações vindas do site dos correios em um Array
foreach($correios_info as $info) {
// Busca a informação do Preço da Postagem
if(preg_match("/\<Valor>(.*)\<\/Valor>/",$info,$tarifa)) {
$frete = $tarifa[1] + EMBALAGEM;
}
if(preg_match("/\<PrazoEntrega>(.*)\<\/PrazoEntrega>/",$info,$PrazoEntrega)) {
$PrazoEntrega = $PrazoEntrega[1];
}
}
// Neste exemplo estamos usando apenas PAC e SEDEX. Caso seja necessário, utilize outras opções.
switch ($cod_servico) {
case 41106:
$nome_servico = " PAC ";
break;
case 40010:
$nome_servico = " SEDEX ";
break;
}
}
}
?>
<form id="form-pesquisa-repasse" action="" method="post" class="formMain formSearch wsizep100" >
<fieldset>
<legend>Pesquisar valor do frete!</legend>
<label for="servico" class="wsize015">
<span class="nameField">Envio</span>
<select id="servico" name="servico" title="Serviços dos Correios" class="select" tabindex="1">
<option value="41106">PAC</option>
<option value="40010">SEDEX</option>
</select>
</label>
<label class="wsize010" for="cep-destino">
<span class="nameField">CEP Destino</span>
<input id="cep-destino" class="text" type="text" value="<?php echo @$cep_destino ?>" maxlength="9" title="CPF destino" name="cep-destino" tabindex="2"/>
</label>
<label for="pesquisar" class="wsize010">
<input type="submit" id="pesquisar" name="pesquisar" tabindex="3" class="button inline" value="Pesquisar" />
</label>
</fieldset>
</form>
<?php
// Caso venha valor de resposta é numerio e maior que o custo da embalagem senão ocorreu algum erro na solicitação.
if(is_numeric(@$frete) and (@$frete > @$embalagem)) {
// Quando encontra o valor da postagem, exibe na página formatando em padrão de moeda 10,89
// Caso você não queira formatar basta comentar a linha abaixo que será exibido assim 10.89 e basta executar o comando abaixo
$frete = number_format($frete,2,',','.');
echo $nome_servico . $frete . ' prazo entrega de ' . $PrazoEntrega . ' dia(s) ';
} else {
echo 'Erro ao consultar verifique se o CEP esta correto';
} ?>
</li>
</ul>
<form action="email.php" method="post" >
<ul>Nome : <input type="text" name="name" class="one" ></ul>
<ul>Endereço : <input type="text" name="endereco" class="two"><li> Numero : <input type="text" name="numero" class="tree" ></li></ul>
<ul>Bairro : <input type="text" name="bairro" class="four">
<li> UF :<input type="text" name="uf" class="six"></li>
<li class="city"> Cidade :<input type="text" name="cidade" class="five" ></li>
</ul>
<ul> Telefone :<input type="text" name="tel" class="eight"> </ul> </div>
<div class="pagamento">
<div class="textoprog"> <h2>2</h2> Forma de pagamento</div>
<?php
$total = 0;
$conn = conecta();
foreach ($_SESSION['shop'] as $id => $qtd) {
$cart = $conn->prepare("SELECT * FROM produtos WHERE id=$id");
$cart->setFetchMode(PDO::FETCH_ASSOC);
$cart->execute();
while ($linha = $cart->fetch()) {
$foto = $linha['foto'];
$nome = $linha['nome'];
$descricao = $linha['descricao'];
$tamanho = $linha['tamanho'];
$cor = $linha['cor'];
$preço = $linha['preço'];
$total = number_format($total, 2, ',', '.');
$total += $linha['preço'] * $qtd;
}
?>
<div class="pal"><input type="radio" id="cardradius" name="bt" class="radio" ><img src="imagens/card.fw.png" class="cardicon" /><li>Cartão de credito</li></div>
<div class="card">
<div class="imgcard"><input type="radio" name="operadora" value="mastercard"><img src="imagens/Mastercard.fw.png" width="33" height="20" />
<input type="radio" name="operadora" value="visa"><img src="imagens/visa_512.fw.png" width="33" height="20" ></div>
<div class="infocard">
<div class="namecard">Nome impresso no cartão : <input type="text" name="nomecard" class="card1" ></div>
<div class="codcard">Numero do cartão :<input type="text" name="codcard" class="card2" ></div>
<div class="datecard">Data de validade :
<div class="month"> mês :</div>
<select name="monthcard" class="card3" >
<option value="Janeiro"> Janeiro</option>
<option value="Fevereiro"> Fevereiro</option>
<option value="Março"> Março</option>
<option value="Abril"> Abril</option>
<option value="Maio"> Maio</option>
<option value="Junho"> Junho</option>
<option value="Julho"> Julho</option>
<option value="Agosto"> Agosto</option>
<option value="Setembro"> Setembro</option>
<option value="Outubro"> Outubro</option>
<option value="Novembro"> Novembro</option>
<option value="Dezembro"> Dezembro</option>
</select>
<div class="year"> Ano :
<select name="yearcard" class="card4" >
<option value="15"> 15</option>
<option value="16"> 16</option>
<option value="17"> 17</option>
<option value="18"> 18</option>
<option value="19"> 19</option>
<option value="20"> 20</option>
<option value="21"> 21</option>
<option value="22"> 22</option>
<option value="23"> 23</option>
<option value="24"> 24</option>
<option value="25"> 25</option>
</select>
</div>
</div>
<div class="securitycode">Codigo de segurança(CW) :<input type="text" name="securitycode" class="card5" ></div>
<div class="parcel">Numero de parcelas
<select name="parcel" class="card6" >
<option value="1 Vez de R$ <?php echo number_format(@$total + @$frete , 2, ',', '.') ?>">1 Vez de R$ <?php echo number_format(@$total + @$frete , 2, ',', '.') ?></option>
<option value="2 Vezes de R$ <?php echo number_format(@$total / 2 , 2, ',', '.') ?>">2 Vezes de R$ <?php echo number_format(@$total / 2 , 2, ',', '.') ?></option>
<option value="3 Vezes de R$ <?php echo number_format(@$total / 3 , 2, ',', '.') ?>">3 Vezes de R$ <?php echo number_format(@$total / 3 , 2, ',', '.') ?></option>
<option value="4 Vezes de R$ <?php echo number_format(@$total / 4 , 2, ',', '.') ?>">4 Vezes de R$ <?php echo number_format(@$total / 4 , 2, ',', '.') ?></option>
<option value="5 Vezes de R$ <?php echo number_format(@$total / 5 , 2, ',', '.') ?>">5 Vezes de R$ <?php echo number_format(@$total / 5 , 2, ',', '.') ?></option>
<option value="6 vezes de R$ <?php echo number_format(@$total / 6 , 2, ',', '.') ?>">6 vezes de R$ <?php echo number_format(@$total / 6 , 2, ',', '.') ?></option>
</select>
</div>
</div>
</div>
<div class="pal"><input type="radio" id="boletoradius" name="bt" class="radio" ><img src="imagens/boleto.fw.png" class="boleticon" /><li>Boleto bancário</li></div>
<div class="boleto">
<li>Pagamento à vista</li>
<li>Boleto vence em três dias</li>
<li>Imprima o boleto após a finalização do pedido</li>
<li>O pagamento do boleto poder ser feito em agências bancárias, casas lotéricas, correios ou internet banking</li>
</div>
<div class="pal"><input type="radio" id="mercadoradius" name="bt" class="radio" ><img src="imagens/mercado.fw.png" class="mpicon" /><li>Mercado Pago</li></div>
<div class="mercado">
<li>Após a finalização do pedido será aberta uma janela para realizar o pagamento através do MercadoPago</li>
<li>O ambiente de pagamento é totalmente seguro</li>
<li>Compras parceladas em até 12x através do MercadoPago não terão custos extras</li>
</div>
<div class="pal"><input type="radio" id="pagseguroradius" name="bt" class="radio" ><img src="imagens/pag.fw.png" class="pagicon" /><li>Pague seguro</li></div>
<div class="pagseguro">
<li>Após a finalização do pedido será aberta uma janela para realizar o pagamento através do Pagseguro</li>
<li>O ambiente de pagamento é totalmente seguro</li>
<li>Compras parceladas em até 12x através do Pagseguro </li>
</div>
</div>
<div class="confirma">
<div class="textoprog"> <h2>3</h2> Confirmar pedido </div>
<div class="desfinaliza">
<div id="textoend1"> <li>Codigo</li> <li>Foto</li> <li>Nome</li> <li>Quantidade</li> <li>Preço</li> </div>
</div>
<?php
$total = 0;
foreach ($_SESSION['shop'] as $id => $qtd) {
$cart = $conn->prepare("SELECT * FROM produtos WHERE id=$id");
$cart->setFetchMode(PDO::FETCH_ASSOC);
$cart->execute();
while ($linha = $cart->fetch()) {
$foto = $linha['foto'];
$nome = $linha['nome'];
$descricao = $linha['descricao'];
$tamanho = $linha['tamanho'];
$cor = $linha['cor'];
$preço = $linha['preço'];
$total += $linha['preço'] * $qtd;
echo '
<div id="textoend2">
<li ><div class="size" >R$'.$preço.' </div></li>
<li><div class="sub2 size"> '.$qtd.' </div></li>
<li><div class="name"> '.$linha['nome'].'<br>'.$linha['descricao'].'</div> </li>
<img "</td>
<li><div class="img"><img src = "../' . $foto . ' " width = "120px" height="120" /></div> </li>
</div>
';
}
}
}
$total = number_format($total + @$frete, 2, ',', '.');
echo'
<div id="textoend">
<li class="totend">Total :</li>
<li class="totend2">R$ '.$total.' </li>
<li class="totend3"><input type="submit" class="totend3button" value="Finalizar Compra"></li>
</div>
';
?>
</div>
<input type="hidden" name="nome" value="<?php echo $linha['nome'] ?>" >
<input type="hidden" name="descricao" value=" <?php echo $linha ['descricao'] ?>" >
<input type="hidden" name="quantidade" value="<?php echo $qtd ?>" >
<input type="hidden" name="frete" value="<?php echo $frete ?>" >
<input type="hidden" name="total" value="<?php echo $total ?>" >
</form>
</div>
</div>
</body>
</html>
Por exemplo se o total é : R$ 3.696,00 apresenta no total: R$ 1.848,00, ou seja isso so acontece quando altero a quantidade no botao , se comprar direto funciona, o que fazer?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.