راکت

سبد خرید با ajax

41 پاسخ

سلام.
من وقتی محصول به سبد خریدم اضافه میکنم، اضافه میشه ولی میخوام قیمت محصولی هم بعد از اضافه شدن به سبد خرید بدون رفرش شدن صفحه مبلغش آپدیت بشه ولی در حال حاضر این اتفاق نمیوفته.
روت:

Route::get('add-to-cart/{id}', [HomeController::class, 'addToCart'])->name('add.to.cart');

کنترلر:

public function addToCart($id)
    {
        $product = Product::findOrFail($id);

        $cart = session()->get('cart', []);

        if(isset($cart[$id])) {
            $cart[$id]['quantity']++;
        } else {
            $cart[$id] = [
                "title" => $product->title,
                "quantity" => 1,
                "price" => $product->price,
                "image" => $product->image
            ];
        }

        session()->put('cart', $cart);
    }

بلید:

<div class="span3">
                        <div class="cart-container" id="cartContainer">
                            @if(session('cart'))
                                @foreach(session('cart') as $id => $details)
                            <div class="cart">
                                <p class="items">سبد خرید <span class="dark-clr">{{ $details['quantity'] }}</span></p>
                                <p class="dark-clr hidden-tablet">$1816.90</p>
                                <a href="https://roocket.ir/checkout-step-1.html" class="btn btn-danger">
                                    <i class="icon-shopping-cart"></i>
                                </a>
                            </div>
                            <div class="open-panel">

                                <div class="item-in-cart clearfix">
                                    <div class="image">
                                        <img src="{{ $details['image'] }}" width="124" height="124" alt="cart item" />
                                    </div>
                                    <div class="desc">
                                        <strong><a href="https://roocket.ir/product.html">{{ $details['title'] }}</a></strong>
                                        <span class="light-clr qty">
                                    تعداد : {{ $details['quantity'] }}
                                    &nbsp;
                                    <a href="#" class="icon-remove-sign" title="Remove Item"></a>
                                </span>
                                    </div>
                                    <div class="price">
                                        <strong>{{ $details['price'] }}</strong>
                                    </div>
                                </div>

                                <div class="summary">
                                    <div class="line">
                                        @php $total = 0 @endphp
                                        @foreach((array) session('cart') as $id => $details)
                                            @php $total += $details['price'] * $details['quantity'] @endphp
                                        @endforeach
                                        <div class="row-fluid">
                                            <div class="span6">جمع کل :</div>
                                            <div class="span6 align-right size-16">{{ $total }}</div>
                                        </div>
                                    </div>
                                </div>
                                <div class="proceed">
                                    <a href="https://roocket.ir/checkout-step-1.html" class="btn btn-danger pull-right bold higher">تصویه حساب <i class="icon-shopping-cart"></i></a>
                                    <small>هزینه ارسال بر اساس منطقه جغرافیایی محاسبه میشود. <a href="#">اطلاعات بیشتر</a></small>
                                </div>
                            </div>
                                @endforeach
                            @endif
                        </div>
                    </div>
                </div>

کد ajax:

$(document).ready(function () {
                $('#cartBtn').click(function () {
                    var product_id = $('#product_id').val();
                    $.ajax({
                       type: 'get',
                       url: '/add-to-cart/' + product_id,
                        success:function() {
                            alert('done');
                        }
                    });
                });
            });
ثبت پرسش جدید

پاسخ‌ها

41
Armin Rahmati
Armin Rahmati
@arminrahmati999

@oxbir
سلام.
بله دقیقا همینطوری.

شاید پاسخ شما همین‌جا باشد

صفحه 3 از 3

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام