簡體   English   中英

如何使用 Laravel 中的 Ajax 更新購物車數量

[英]How to update cart quantity with Ajax in Laravel

I am using a package from https://packagist.org/packages/bumbummen99/shoppingcart which extends Crinsane/LaravelShoppingCart in my Laravel 7.3 framework and I am struggling with updating my cart quantity with Ajax straight in my cart view.

即使我通過 ajax 調用中的數據發送了 csrf header,我也收到狀態代碼500 - Internal Server Error

查看 (cart.blade.php)

<tbody>
 @if(Cart::count() > 0)
 @foreach(Cart::content() as $details)
    <tr id="product-show">
        <td data-th="Product">
        <div class="row">
            <div class="col-sm-3 hidden-xs img-responsive"><img src="img/{!!$details->options->image!!}" width="100" height="100"/></div>
                <div class="col-sm-9">
                    <h4 class="nomargin">{{ $details->name }}</h4>
                </div>
            </div>
        </td>
        <td data-th="Price">{{ $details->price }} RON</td>
        <td data-th="Quantity">
            <input type="number" value="{{ $details->qty }}" class="form-control quantity" class="quantity"/>
        </td>
        <td data-th="Subtotal" class="text-center" id="total-price">{{ $details->price * $details->qty }} RON</td>
        <td class="actions text-center" data-th="">
            <button class="btn btn-info btn-sm update-cart" data-token="{{ csrf_token() }}" data-id="{{ $details->rowId}}" style="margin: 10px;">
            <i class="fa fa-refresh"></i> Refresh</button>
            <button class="btn btn-danger btn-sm remove-from-cart" data-token="{{ csrf_token() }}" data-id="{{ $details->rowId}}" style="margin: 10px;">
            <i class="fa fa-trash-o"></i>Delete</button> 
        </td>
    </tr>
 @endforeach
 @endif
 </tbody>

Ajax 腳本

$(".update-cart").click(function (e) {
        e.preventDefault();
        var ele = $(this);
        $.ajax({
        url: "{{ url('update-cart') }}",
        method: "patch",
        data: {_token: '{{ csrf_token() }}', id: ele.attr("data-id"), quantity:
        ele.parents("tr").find(".quantity").val()},
        success: function (response) {
            window.location.reload(); 
        }
    });
 });

Controller

public function updateCart(Request $request){
        
        $cart = Cart::content()->where('rowId', $request->id);
        //update quantity
        //dd($cart);
        return view('pages.cart')->with('cart-success', 'Cart updated');
    }

路線

Route::patch('update-cart', 'ProductController@updateCart');

我不知道我做錯了什么,而且在我剛剛將購物車存放在我的 session 之前它工作得很好。

我會很感激任何建議,我不知道如何解決這個問題。 多謝你們 !

  • 如果您在測試服務器上,請在 your.env 文件中將 debug 設置為 true,您的響應將是更詳細的錯誤消息,或者,
  • 查看 storage/logs 文件夾中的 laravel.log 文件,您將找到更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM