簡體   English   中英

如何更改購物車laravel中的數量?

[英]How to change quantity in cart laravel?

我嘗試更改cartquantity 我的代碼看起來像:

<div class="form-group">
   <input rowId="{{ $cart->rowId }}" type="number" value="{{ $cart->qty }}" class="form-control prc" required>
</div>

我的script是:

$('.form-group').on('input', '.prc', function(){
    var totalSum = 0;
    $('.form-group .prc').each(function()
    {
        var inputVal = $(this).val();
        if ($.isNumeric(inputVal))
        {
            totalSum += parseFloat(inputVal);
        }
    });
    $('#result').text(totalSum);
    var rowId = $(this).attr('rowId');
    var quantity = $(this).val();
    var prevQuantity = $(this).attr('value');
    if ($.isNumeric(quantity) && (quantity != prevQuantity) && (quantity != 0))
    {
        window.location.href = "{{ url('Cart/add') }}"+'/'+rowId+'/'+quantity; 
    }
});

這是我的controller

 public function add($id, $quantity) 
{
    $item = Cart::get($id);
    Cart::update($id, ['qty'=>$quantity]);
    return redirect()->route('Cart.index');
}

但該值並未存儲在cart->quantity

使用 Ajax 調用命中您的路線。

你的路線應該是這樣的:

Route::get('/Cart/add/{rowId}/{qty}','YourController@add');

你的腳本應該是這樣的:

$('.form-group').on('input', '.prc', function(){
    var totalSum = 0;
    $('.form-group .prc').each(function()
    {
        var inputVal = $(this).val();
        if ($.isNumeric(inputVal))
        {
            totalSum += parseFloat(inputVal);
        }
    });
    $('#result').text(totalSum);
    var rowId = $(this).attr('rowId');
    var quantity = $(this).val();
    var prevQuantity = $(this).attr('value');
    if ($.isNumeric(quantity) && (quantity != prevQuantity) && (quantity != 0))
    {
        $.ajax({
            type: 'get',
            url: '/Cart/add/'+rowId+'/'+quantity,
            success: function(data){
                if (data == 'success') {                
                    alert('success');
                }
                else{
                    alert('failure');
                }

            },
            error:function(data){

            }
        });
    }
});

注意:我剛剛在此處添加了 Ajax 調用,因此請確保您的腳本在 if 循環中正常工作

讓你的控制器像這樣:

public function add($id, $quantity) {
    $item = Cart::find($id);
    $item->qty = $quantity;
    $item->save();
    return response('success');
}

希望它會起作用

暫無
暫無

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

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