Вот, забыл показать функции по корзине и стандартный блок с товаром, который выводится из БД (внизу). До сих пор не получилось сделать переадресацию header('Location: /index.php?page=cart'); после нажатия на кнопку купить.... может мне лучше избавится от переключателя SWITCH и как то по другому переделать функции обработки корзины, чтобы функции обработки не зацикливалась на add_to_cart, как на странице.... Помогите советом...
<script>
$('document').ready(function(){
function addtoCart(itemId){
console.log("js-addToCart()");
$.ajax({
type: 'POST',
async: false,
url:"../send/"+itemId+'/',
dataType: 'json',
succes: function(data){
if(data['success']){
$('#cartCntItems') .html(data['cntItems']);
$('#addCart_'+ itemId).hide();
$('#removeCart_'+ itemId).show();
}
}
});
}
});
</script>
Функции корзины:
session_start();
if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['total_items'] = 0;
$_SESSION['total_price'] = 0;
}
function add_to_cart($id){
$id = $_GET['id'];
if(isset($_SESSION['cart'][$id])){
$_SESSION['cart'][$id]++;
return true;
} else{
$_SESSION['cart'][$id] = 1;
return true;
}
return false;
}
function db_result_array($result){
$res_array = array();
$count = 0;
while($row = mysql_fetch_array($result)){
$res_array[$count] = $row;
$count++;
} return $res_array;
}
function get_product($id){
$query = " SELECT * FROM `product` WHERE `id` = '$id'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
return $row;
}
function update_cart(){
foreach($_SESSION['cart'] as $id => $qty){
if($_POST[$id] == '0'){
unset($_SESSION['cart'][$id]);
} else { $_SESSION['cart'][$id] = $_POST[$id]; }
}
}
function total_items($cart){
$num_items = 0;
if(is_array($cart)){
foreach($cart as $id => $qty){
$num_items = $num_items + $qty;
}
}
return $num_items;
}
function total_price($cart){
$total_price = 0;
if(is_array($cart)){
foreach($cart as $id => $qty){
$query = "SELECT cena FROM product WHERE id = '$id'";
$result = mysql_query($query);
if($result){
$item_price = mysql_result($result, 0, 'cena');
$total_price = $total_price + $item_price * $qty;
}
}
}
return $total_price;
}
$page = empty($_GET['page']) ? 'index.php' : $_GET['page']; /* если страниц нет, то главная */
switch($page){
case('add_to_cart'):
$id = $_GET['id'];
$add_item = add_to_cart($id);
$_SESSION['total_items'] = total_items($_SESSION['cart']);
$_SESSION['total_price'] = total_price($_SESSION['cart']);
header('Location:index.php?page=cart'); /*index.php&id='.$id*/
break;
case('update_cart'):
update_cart();
$_SESSION['total_items'] = total_items($_SESSION['cart']);
$_SESSION['total_price'] = total_price($_SESSION['cart']);
header('Location:index.php?page=cart');
break;
}
Из базы данных циклом выводятся товары с ценой и кнопкой "купить"
<div >
<p>Товар</p>
<div id = 'price'><?php echo (int)$row['cena']. " грн. "; ?> </div>
<a <?php if($row['price'] !=0){ ?> href="?page=add_to_cart&id=<?= $row['id'] ?>"; <?php } ?>id = "to_basket">Купить</a>
</div>
Вот страница сайта, для наглядного примера проблемы.... :
https://ensy.com.ua/vents?page=vents