Обновить количество продуктов $ _SESSION не обновляется - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь обновить продукт в моей корзине, но он не работает .. Я не знаю, в чем проблема.

<div class="quantity">
  <input class="input_display" name="aantal" type="number" value="<?=$value['item_quantity'];?>" min="1" max="<?php if($current_max_input_value == 0){ echo $max_input_number; }else{ echo $current_max_input_value; };?>">
</div>
<a href="?action=update&id=<?=$value['item_id'];?>" class="site-btn">Update Item</a>
if(isset($_GET['action'])){
    if($_GET['action'] == 'update'){
        foreach($_SESSION['shopping_cart'] as $key => $item){
            //echo '<pre>';
            //print_r($_SESSION['shopping_cart']);
            //echo '<pre>';
            if($item['item_id'] == $_POST['id']){

                //UPDATE THE ITEM IN SHOPPING CART
                $_SESSION['shopping_cart'][$key]['item_quantity'] = $_POST['aantal'];
            }

        }
    }
}

1 Ответ

0 голосов
/ 10 марта 2020

Проблема здесь в том, что вы не пропускаете переменные POST, когда используете <a>, который выполняет вызов GET. Вместо этого попробуйте использовать POST-переменные, группирующие кнопку Update Item и поле «количество элементов» внутри формы. Теперь вы можете получить значения только через POST-переменные в сценарии PHP, заменив где $ _GET на $ _POST.

<form action="cart.php" method="post">
      <input type="hidden" name="action" value="update">
      <input type="hidden" name="id" value="<?=$value['item_id'];?>">
      <div class="quantity">
        <input class="input_display" name="aantal" type="number" value="<?=$value['item_quantity'];?>" min="1" max="<?php if($current_max_input_value == 0){ echo $max_input_number; }else{ echo $current_max_input_value; };?>">
      </div>
      <button type="submit" class="site-btn">Update Item</a>
    </form>
if(isset($_POST['action'])){
    if($_POST['action'] == 'update'){
        foreach($_SESSION['shopping_cart'] as $key => $item){
            //echo '<pre>';
            //print_r($_SESSION['shopping_cart']);
            //echo '<pre>';
            if($item['item_id'] == $_POST['id']){

                //UPDATE THE ITEM IN SHOPPING CART
                $_SESSION['shopping_cart'][$key]['item_quantity'] = $_POST['aantal'];
            }

        }
    }
}
...