Witam,
Mam problem mianowicie gdy wciskam dodaj do koszyka wszystko ładnie działa ale gdy już odświeżam stronę zawartość koszyka znika. Myślę że to problem zmiennej sesyjnej. Proszę o pomoc kod poniżej:
plik index.php:
<?php
session_start();
$paintInfo = array();
$_SESSION['cart'] = $booksInfo;
?>
<html>
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>GENC- oferta</title>
<meta name="description" content="Serwis prezentuje ofertę firmy GENC POLSKA" />
<meta name="keywords" content="lakiery do drewna podłady, genc, Wola Rzędzińska"/>
<link rel="Stylesheet" href="style.css">
<script type="text/javascript" src="./java/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="/koszyk.js"></script>
<script type="text/javascript" src="./java/koszyk2.js"></script>
</head>
<body>
<div id="container">
<div class="cart">
<strong>Twój koszyk</strong>
<p id="cart">Koszyk jest pusty</p>
</div>
<?php
$objXML = simplexml_load_file('podkładyy.xml');
foreach($objXML->paint as $paint)
{
echo '<div class="produkt">';
echo 'Tytuł : '. $paint->name,'<br/>';
echo 'Cena : '. $paint->price,' <br/>';
echo 'Opis : '. $paint->specification,' <br/>';
?>
Ilość(KG):
<input type="number"></input>
-
<input type="hidden" value="<?php echo $paint['id']; ?>"/>
<input type="button" value="Do koszyka"/>
<?php
echo '</div>';
}
?>
</div>
</body>
</html>
plik poklady.php
<?php
session_start();
if ((!isset($_SESSION['cart']))
{
$paintsInfo = $_SESSION['cart'];
$paintFound = false;
}
if(count($paintsInfo) > 0)
{
for($i=0;$i< count($paintsInfo);$i++)
{
if($paintsInfo[$i]['paintId'] == $_POST['paintId'])
{
$paintsInfo[$i]['quantity'] = $_POST['quantity'];
$paintFound = true;
break;
}
}
}
if(!$paintFound)
{
$paint = array('paintId' => $_POST['paintId'], 'quantity' => $_POST['quantity']);
array_push($paintsInfo, $paint);
}
$_SESSION['cart'] = $paintsInfo;
$grossTotal = 0;
$str='';
$brutto= 1.23;
for($i=0; $i<count($paintsInfo); $i++)
{
$paintName = getPaintName($paintsInfo[$i]['paintId']);
$paintPrice = getPriceForPaint($paintsInfo[$i]['paintId']);
$totalPrice = $paintPrice * $paintsInfo[$i]['quantity'];
$grossTotal+= $totalPrice;
$str.= '<strong>Nazwa - </strong>'.$paintName;
$str.= '<br/>';
$str.= ' <strong>Ilość - </strong>'.$paintsInfo[$i]['quantity'].'KG';
$str.= '<br/>';
$str.= '<strong>Cena - </strong>'.$paintPrice. ' PLN '
.$paintsInfo[$i]['quantity'].' = '.$totalPrice.' PLN';
$str.= '<br/><br/>';
}
$str.= '<strong>Suma zamówienia: <br> </strong>'.$grossTotal.' PLN/NETTO <br> '.round ($grossTotal * $brutto,2).' PLN/BRUTTO';
echo $str;
function getPaintName($id)
{
$objXML = simplexml_load_file('podkladyy.xml');
foreach($objXML->paint as $paint)
{
if($paint['id'] == $id)
{
return $paint->name;
}
}
return false;
}
function getPriceForPaint($id)
{
$objXML = simplexml_load_file('podkladyy.xml');
foreach($objXML->paint as $paint)
{
if($paint['id'] == $id)
{
return $paint->price;
}
}
return false;
}
?>
plik koszyk.js
$(document).ready(function()
{
$('input:button').click(function()
{
$.post('podklady.php',
{
paintId : $(this).prev('input:hidden').val(),
quantity: $(this).prev().prev('').val()
},
function(data)
{
$('#cart').html(data);
}
)
});
});