在laravel

时间:2018-04-09 11:41:34

标签: php ajax laravel cart

我想使用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();
    }

2 个答案:

答案 0 :(得分:1)

如果要为动态数据调用ajax并将任何内容更改为数据库,则必须只调用一次ajax并动态发送数据。 在你的情况下,你在循环中调用ajax 30次,这不是调用动态数据的正确方法..

答案 1 :(得分:0)

您需要使用jquery设置总价格值,因为没有页面刷新您的更改不会反映出来。