За последние 24 часа нас посетили 22862 программиста и 1708 роботов. Сейчас ищут 1708 программистов ...

Не проходит значение input get-запросом в контроллер

Тема в разделе "PHP для новичков", создана пользователем PHPRulit, 4 янв 2019.

  1. PHPRulit

    PHPRulit Гость

    С нами с:
    8 ноя 2018
    Сообщения:
    2
    Симпатии:
    0
    Товар добавлен в корзину, созданы сессии :
    PHP:
    1. $_SESSION['cart'][$id], // в ней кроме информации о товаре: qty и price товара
    2. $_SESSION['cart.qty'],
    3. $_SESSION['cart.sum']
    Пытаюсь сделать пересчёт корзины при изменении количества товара.
    Помогите пожалуйста, не пойму где ошибка...
    Не передаётся значение input...
    PHP:
    1. cart_modal.php
    2.  
    3.     <div class="number">
    4.         <input type="number" name="number" value="<?=$_SESSION['cart'][$id]['qty'];?>" size="5" min="1" step="1"/>
    5.     </div>
    6.     <a data-id="<?=$id;?>" href="cart/update?id=<?=$id;?>" class="update-cart">Пересчитать корзину</a>
    7.  
    8.  
    9. main.js
    10.  
    11. $('#cart .modal-body').on('сlick', '.update-cart', function(e) {
    12.     e.preventDefault();
    13.     var id = $(this).data('id'),
    14.         qty = $('.number input').val();
    15.     $.ajax({
    16.         url: '/cart/update',
    17.         data: {id: id, qty: qty},
    18.         type: 'GET',
    19.         success: function(res){
    20.             showCart(res);
    21.         },
    22.         error: function(){
    23.             alert('Ошибка! Попробуйте позже');
    24.         }
    25.     });
    26. });
    27.  
    28.  
    29. CartController.php
    30.  
    31. public function updateAction()
    32. {
    33.     $id = !empty($_GET['id']) ? (int)$_GET['id'] : null; //получаем id товара данные из массива GET, файл maim.js
    34.     $qtyChange = !empty($_GET['qty']) ? (int)$_GET['qty'] : null;
    35.     debug($id);
    36.     debug($qtyChange); //передаёт null
    37.     if(isset($_SESSION['cart'][$id])) {
    38.         $cart = new Cart(); //создаём объект корзины
    39.         $cart->updateCart($id, $qtyChange);
    40.     }
    41.     if($this->isAjax()){
    42.         $this->loadView('cart_modal');
    43.     }
    44.     redirect();
    45. }
    46.  
    47.  
    48. Cart.php
    49.  
    50. public function updateCart($id, $qtyChange){
    51.     if (!isset($_SESSION['cartChange'][$id])) {
    52.         $price = $_SESSION['cart'][$id]['price'] * $_SESSION['cart.currency']['value'];
    53.         $deltaQty = $_SESSION['cart'][$id]['qty'] - $qtyChange;
    54.         $deltaSum = $deltaQty * $price;
    55.         $_SESSION['cartChange'][$id] = [
    56.             'qty' => $qtyChange,
    57.             'price' => $price,
    58.             'deltaQty' => $deltaQty,
    59.             'deltaSum' => $deltaSum
    60.         ];
    61.     }
    62.  
    63.     if($_SESSION['cart'][$id]['qty'] > $qtyChange) {
    64.         $_SESSION['cart.sum'] -= $_SESSION['cartChange'][$id]['deltaSum'];
    65.     } else {
    66.         $_SESSION['cart.sum'] += $_SESSION['cartChange'][$id]['deltaSum'];
    67.     }
    68.  
    69.     $_SESSION['cart'][$id]['qty'] += ($_SESSION['cartChange'][$id]['deltaQty']);
    70.     $_SESSION['cart.qty'] += ($_SESSION['cartChange'][$id]['deltaQty']);
    71.  
    72.    unset($_SESSION['cartChange'][$id]);
    73.  
    74.  
    75. }
     
    #1 PHPRulit, 4 янв 2019
    Последнее редактирование модератором: 9 янв 2019