我想使用ajax更新我的购物车产品。
它仅适用于第一个产品而非整车产品,当我更新数量值时,它不反映总价格。
但是,当我刷新页面时,它反映了总价格。
shoppingcart_blade:
<input type="hidden" name="product_id" id="product_id<?php echo $count; ?>" value="{{ $cartproduct->id }}"/>
<input type="number" name="qty" min="1" max="20" id="updateQty<?php echo $count; ?>" value="{{ $cartproduct->qty }}" class="btn-qty-cart" autocomplete="off"/>
<input type="hidden" id="rowId<?php echo $count; ?>" value="{{ $cartproduct->rowId }}" name="rowId"/>
<script type="text/javascript">
<?php for($i=1;$i<30;$i++){ ?>
$('#updateQty<?php echo $i; ?>').on('change keyup',function(){
var qty = $('#updateQty<?php echo $i; ?>').val();
var rowId = $('#rowId<?php echo $i; ?>').val();
var product_id = $('#product_id<?php echo $i; ?>').val();
if(qty<=0)
{
alert('Enter only valid Quantity');
}
else
{
$.ajax({
type: "get",
url: "<?php echo url('shopping_cart/'); ?>/"+product_id,
data: {
'qty': qty,
'rowId': rowId,
'product_id' :product_id,
},
success: function(data) {
//alert(data);
//console.log(data);
}
});
}
});
<?php } ?>
</script>
控制器:
public function updateCartQuantity(Request $request,$id)
{
$product_id=$request->product_id;
Cart::update($request->rowId,$request->qty);
return redirect()->back();
}
答案 0 :(得分:1)
如果要为动态数据调用ajax并将任何内容更改为数据库,则必须只调用一次ajax并动态发送数据。 在你的情况下,你在循环中调用ajax 30次,这不是调用动态数据的正确方法..
答案 1 :(得分:0)
您需要使用jquery设置总价格值,因为没有页面刷新您的更改不会反映出来。