x-gyba 0 Denunciar post Postado Fevereiro 2, 2016 Boa noite estou com problemas neste carrinho de compras , que faz o calculo normalmente, mas se der refresh(botao atualizar pagina) no navegador ele volta ao preco inicial.,como faço pra manter os dados e quando por algum motivo atualizar a pagina os dados continuarem, cookies ou javascript?? gostaria de uma solução,pois nao estou conseguindo resolver. Este é o Javascript : $(document).ready(function (e) { $('input').change(function (e) { id = $(this).attr('rel'); $index = this.value; $preco = $('font#preco'+id).html().replace("R$ ",''); console.log($preco); $val = ($preco*$index).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');; $('font#sub'+id).html('R$ '+$val); }); });e este é o carrinho: <?php include(dirname(__FILE__) . './funcao/conecta.php'); session_start(); if(!isset($_SESSION['shop'])){ $_SESSION['shop'] = array(); } //adiciona produto if(isset($_GET['acao'])){ $id = intval($_GET['id']); if(!isset($_SESSION['shop'][$id])){ $_SESSION['shop'][$id] = 1; }else{ $_SESSION['shop'][$id] += 1; header("Location: shop.php"); } } //subtrari produto do cesto if(isset($_GET['acao'])){ if($_GET['acao'] == 'sub'){ $id = intval($_GET['id']); if(!isset($_SESSION['shop'][$id])){ $_SESSION['shop'][$id] = 1; }else{ $_SESSION['shop'][$id] -= 1; }if ($_SESSION['shop'][$id] == 0 ) { unset ($_SESSION['shop'][$id]) ; } } } //remove produto do cesto if(isset($_GET['acao'])){ if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['shop'][$id])){ unset($_SESSION['shop'][$id]); } } } //altera a quantidade de produtos //Se existir $_POST['prod'] ent�o come�a.. if( isset( $_POST['prod'] ) ) if($_GET['acao'] == 'atualizar'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['shop'][$id] = $qtd; }else{ unset($_SESSION['shop'][$id]); } } } } ?> <!DOCTYPE html PUBLIC "~//W3C//DTD XHTML 1.0 Transitional//EN""[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[/url] <html xmlns = "[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml">[/url] <head> <meta http-equiv = "content-type" content = "text/html; charset = utf8"/> <meta name = "viewport" content = "width = device-width,initial-scale = 1.0"> <title>Seja Bem Vindo !</title> </head> <link rel = "stylesheet" type = "text/css" href = "css/default.css"/> <body onkeydown="return (event.keyCode == 154)"> <head> <br> <div align = "center"><h4>Suas compras efetuadas:</h4> <br> <form action = "shop.php?acao= 'up' method = "post"> <table border = "3" color = width = "100%"> <tr> <td width = "10%"><strong><font size="5" color="violet">FOTO</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">NOME</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">DESCRIÇÃO</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">TAMANHO</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">COR</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">PREÇO</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">QUANTIDADE</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">SUBTOTAL</strong></font></td> <td width = "10%"><strong><font size="5" color="violet">REMOVER</strong></font></td> </tr> </thead> </br> <form action="?acao=atualizar" method="post"> <tfoot> <tr> <td colspan="9"><input type="submit" size = "5" value="atualizar" /></td> <tr> <td colspan="9"><a href="./index.php"><strong><font size="4" color="violet">Continuar Comprando</a></td> <tr> <tr> <td colspan="9"><a href="./funcao/paypal.php"><strong><font size="4" color="violet"><img src="imagens/paypal.png" align="left" style="margin-right:7px;"></a></td> </tfoot> <tbody> <?php $total = 0; if(count($_SESSION['shop']) == 0){ echo '<tr><td align = "center" colspan="9"><strong><font size="6" color="yellow">Não existem produtos em seu cesto de compras !</td></tr>'; }else{ $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']; $preco = $linha['preco']; $linha['preco'] = str_replace(",",".",$linha['preco']); $sub = number_format($linha['preco'] * $qtd, 2, ',', '.'); $total += $preco; echo '<tr>'; echo '<td><img src = "' . $foto . ' " width = "120px"</td>'; echo '<td><strong><font size="4" color="yellow">'.$nome.'</td>'; echo '<td><strong><font size="4" color="yellow">'.$descricao.'</td>'; echo '<td><strong><font size="4" color="yellow">'.$tamanho.'</td>'; echo '<td><strong><font size="4" color="yellow">'.$cor.'</td>'; echo '<td><strong><font size="4" color="yellow">R$ '.$preco.'</td>'; echo'<td align = "center"><strong><font size="3" color="yellow"><input type="text" size ="1" style="font-family: Tahoma; font-size: 20px;align = "center" name="prod['.$id.']" value="'.$qtd.'"/></td>'; echo '<div id="total" ><td><strong><font size="5" color="yellow">R$ '.$sub.'</td>'; echo '<td align = "center" colspan = "9"><a href="?acao=del&id='.$id.'"><img src="./imagens/remover.png" width="70" height="70" ></td>'; echo '</tr>'; } echo '<tr>'; } } ?>O que fazer para o preço continuar , após o refresh, ou se tem como impedir isso Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Fevereiro 2, 2016 primeiramente você usar o session_start(); no inicio ou seja antes do include(dirname(__FILE__) . './funcao/conecta.php'); Compartilhar este post Link para o post Compartilhar em outros sites