Показать сообщение отдельно
  #4 (permalink)  
Старый 05.11.2018, 16:42
Кандидат Javascript-наук
Отправить личное сообщение для Zhenyaxxxx Посмотреть профиль Найти все сообщения от Zhenyaxxxx
 
Регистрация: 25.10.2018
Сообщений: 102

Вот, забыл показать функции по корзине и стандартный блок с товаром, который выводится из БД (внизу). До сих пор не получилось сделать переадресацию 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

Последний раз редактировалось Zhenyaxxxx, 05.11.2018 в 16:46.
Ответить с цитированием