@Heckfy325
Начинающий программист. Простите за глупые вопросы

Почему товар не добавляется в корзину?

Добрый вечер, весь день мучаюсь с решением проблемы над добавлением товара в корзину. По идеи товары добавляются в сессию, без обновления страницы, через AJAX. Проблема в том что ajax не получает id товара, соответственно запрос не идет на нужный контролер для дальнейших действий.

index.php
<div class="product-card__actions">
                                            <div class="product-card__prices"><?= $recommended_product['price'] ?> сум
                                            </div>
                                            <div class="product-card__buttons">
                                                <a href="<?= \yii\helpers\Url::to(['cart/add', 'id' => $recommended_product['product_id']])?>" class="btn btn-primary product-card__addtocart add-to-cart" type="button">
                                                    В корзину
                                                </a>
                                                <a href="<?= \yii\helpers\Url::to(['cart/add', 'id' => $recommended_product['product_id']])?>" class="btn btn-secondary product-card__addtocart product-card__addtocart--list add-to-cart"
                                                        type="button">В корзину
                                                </a>
                                                <button class="btn btn-light btn-svg-icon btn-svg-icon--fake-svg product-card__wishlist"
                                                        type="button">
                                                    <svg width="16px" height="16px">
                                                        <use xlink:href="/images/sprite.svg#wishlist-16"></use>
                                                    </svg>
                                                    <span class="fake-svg-icon fake-svg-icon--wishlist-16"></span>
                                                </button>
                                            </div>


main.js (AJAX)
//add to cart
    $('.add-to-cart').on('click', function (e) {
        e.preventDefault();
        var id = $(this).data('product_id');
        $.ajax({
            url: '/cart/add.html',
            data: {id: 'id'},
            type: 'GET',
            success: function(res){
                if(!res) alert('Ошибка!');
                console.log(res);
                //showCart(res);
            },
            error: function(){
                alert('Error!');
            }
        });
    });


CartController.php
public function actionAdd($id){
        $product = Products::findOne($id);
        if(empty($product)) return false;
        $session =Yii::$app->session;
        $session->open();
        $cart = new Cart();
        $cart->addToCart($product);
        $this->layout = false;
        return $this->render('cart-modal', compact('session'));
    }
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
@KingstonKMS
full-stack web developer
Так вы пытаетесь получить значение атрибута data-product_id, который не прописан в теге а.
Второе: если вы через аякс отправляете запрос, зачем href прописываете?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bagzon
Backend PHP, NodeJs, JS
data: {id: 'id'}, кавычки лишние, ты же переменную пытаешься передать data: {id: id},
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы