[英]How to change quantity in cart laravel?
我嘗試更改cart
的quantity
。 我的代碼看起來像:
<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.