首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel中用Ajax更新手推车数量

如何在Laravel中用Ajax更新手推车数量
EN

Stack Overflow用户
提问于 2021-02-16 07:04:59
回答 1查看 2.3K关注 0票数 1

我正在使用来自https://packagist.org/packages/bumbummen99/shoppingcart的一个包,它在我的Laravel7.3框架中扩展了Cr景/LaravelShoppingCart,我还在我的购物车视图中用Ajax直接更新我的购物车数量。

我得到了一个状态代码500 -内部服务器错误,即使我通过我的数据在ajax调用发送csrf报头。

View (cart.blade.php)

代码语言:javascript
运行
复制
<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脚本

代码语言:javascript
运行
复制
$(".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(); 
        }
    });
 });

控制器

代码语言:javascript
运行
复制
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');
    }

路由

代码语言:javascript
运行
复制
Route::patch('update-cart', 'ProductController@updateCart');

我不知道我做错了什么,而且在我只是把购物车存放在我的会议上之前,它运行得很好。

如果有任何建议我会很感激,我不知道如何解决这个问题。谢谢各位!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 08:03:30

  • 如果您在测试服务器上,将.env文件中的调试设置为true,则响应将是更详细的错误消息,或者,
  • 查看存储/日志文件夹中的laravel.log文件,您将发现更详细的信息.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66219989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档