我正在创建一个购物车页面 Package used - Crinsane/LaravelShoppingcart
要添加数量,我使用 Ajax 调用,
对于单个产品,我可以更新数量并减少数量,一切都很完美。当我尝试将另一件商品添加到购物车并尝试更新其数量时,问题就出现了。
我认为问题在于我获取 rowID 的方式。由于我使用 foreach 并调用它的类,我只得到第一个 id。
我不确定如何以不同的方式获取 ID。我没有粘贴所有购物车代码,因为它会更长
这是我的代码,
刀刃:
@foreach (Cart::Content() as $cartcontent)
<footer class="content">
<input type="hidden" class="rowID" name="" value="{{$cartcontent->rowId}}">
<span class="qt-minus">-</span>
<span class="qt">{{$cartcontent->qty}} </span>
<span class="qt-plus">+</span>
<h2 class="full-price">
{{$cartcontent->model->presentPrice() * $cartcontent->qty}}
</h2>
<h2 class="price">
{{$cartcontent->model->presentPrice()}}
</h2>
</footer>
<br>@endforeach
在html源代码中上面的rowID是不同的
js
$(document).ready(function(){
function cartLogic(){
// var rowID = $('#rowID').val();
var rowID = $('.rowID').val();
var quantity = $('.qt').text();
console.log(rowID);
console.log(quantity);
$.ajax({
url: 'cart/'+ rowID,
// url: 'cart/'+ $('#rowID').val(),
type: 'PATCH',
data: { "_token": "{{ csrf_token() }}",
quantity : quantity,
_method: "PATCH"},
success: function(res) {
console.log(res);
// window.location.reload();
}
});
}
$(".qt-plus").click(function(){
$(this).parent().children(".qt").html(parseInt($(this).parent().children(".qt").html()) + 1);
// console.log('working');
cartLogic();
});
控制器
public function update(Request $request, $id)
{
// return $request->all();
// dd(Cart::content());
$quantity = $request->quantity;
Cart::update($id, $quantity); // Will update the quantity
}
路线
Route::patch('cart/{id}', 'CartController@update')->name('cart.update');
当我查看 console.log(rowID); 我只得到第一个产品 ID。应该怎么做才能得到对应的ID
任何帮助都应该不胜感激
开满天机