简体   繁体   English

在Laravel中使用Ajax更新购物车产品时出错

[英]error in update shopping cart product using ajax in laravel

I want to update my shopping cart product using ajax. 我想使用ajax更新我的购物车产品。

It works only on first product not whole cart product and When i update the quantity value it not reflect on total price.. 它仅适用于第一个产品而不是整个购物车产品,并且当我更新数量值时,它不会反映在总价上。

But when i refresh the page it reflect in total price.. 但是,当我刷新页面时,它会反映在总价格中。

shoppingcart_blade : 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>  

Controller : 控制器:

public function updateCartQuantity(Request $request,$id)
    {
        $product_id=$request->product_id;
        Cart::update($request->rowId,$request->qty);

        return redirect()->back();
    }

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM