Olá este é o meu carrinho de compras, funciona normalmente, porem se eu adicionar um novo produto ou a pagina for atualizada, o preço e a quantidade volta ao inicio (1 produto), ou seja não consigo adicionar outro produto, gostaria de manter os dados sem perde-los,ao adicionar outro produto.alguém pode me ajudar como implementar cookies neste codigo pra que os dados não se percam.
//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['atualizar'])){
if ($_GET['acao'] == 'atualizar') {
Pergunta
Clayton
Olá este é o meu carrinho de compras, funciona normalmente, porem se eu adicionar um novo produto ou a pagina for atualizada, o preço e a quantidade volta ao inicio (1 produto), ou seja não consigo adicionar outro produto, gostaria de manter os dados sem perde-los,ao adicionar outro produto.alguém pode me ajudar como implementar cookies neste codigo pra que os dados não se percam.
<?php
session_start();
include(dirname(__FILE__) . './funcao/conecta.php');
if (!isset($_SESSION['shop'])) {
$_SESSION['shop'] = array();
}
//adiciona produto
if (isset($_GET['acao']) && $_GET['acao'] == 'add' ) {
$id = intval($_GET['id']);
if (isset($_SESSION['shop'][$id]) || empty($_SESSION['shop'][$id])) {
$_SESSION['shop'][$id] = 1;
} else {
$_SESSION['shop'][$id] += 1;
}
}
//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['atualizar'])){
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>
<html lang='pt-br'>
<head>
<meta charset = 'utf8'>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Seja Bem Vindo !</title>
<link rel = "stylesheet" type = "text/css" href = "css/default.css">
<body onkeydown="return (event.keyCode == 154)">
<script src="js/jquery-2.0.0.js" type="text/javascript"></script>
<script src="js/shop.js" type="text/javascript"></script>
</head>
<script>
<script language=javascript>
document.onkeydown = function () {
switch (event.keyCode) {
case 116 :
event.returnValue = false;
event.keyCode = 0;
return false;
case 82 :
if (event.ctrlKey) {
event.returnValue = false;
event.keyCode = 0;
return false;
}
}
}
</script>
</script>
<br>
<div align = "center"><h4>Suas compras efetuadas:</h4>
<br>
<form action = "shop.php?acao= 'atualizar' 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 method="post" action="?acao=atualizar">
<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="./admin/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'];
$preço = $linha['preço'];
$linha['preço'] = str_replace(",",".",$linha['preço']);
$sub = number_format($linha['preço'] * $qtd, 2, ',', '.');
$total += $preço;
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" id="preço'.$linha['id'].'">R$ ' . $preço . '</font></strong></td>';
echo'<td><input rel="'.$linha['id'].'" type="number" step="1" min="1" style="width:50px; font-family: Tahoma; font-size: 20px;" name="prod[' . $id . ']" value="' . $qtd . '"></td>';
echo '<td><div id="total" ><strong><font size="5" color="yellow" id="sub'.$linha['id'].'">R$ ' . $sub . '</font></strong></div></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>';
}
}
?>
Link para o comentário
Compartilhar em outros sites
7 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.