网页具有订购表,可将数据提交到购物车容器的实例。
使用javascript
无需刷新整个页面就能做到这一点。我的问题是我想更新该页面的局部视图,特别是侧边栏(_includes.cart),其中我在其中显示购物车中的所有物品,同时在导航栏上显示其总物品的图标车。
这是我的html
<form action="{{route('cart.store',$item)}}" method="Post" class="ajax">
{{csrf_field()}}
<input type="hidden" name="id" value="{{$item->id}}">
<input type="hidden" name="prod_desc" value="{{$item->prod_desc}}">
<input type="hidden" name="concept" value="{{$item->concept}}">
<input type="hidden" name="unit_price" value="{{$item->unit_price}}">
<input type="hidden" name="pictures" value="{{$item->pictures}}">
<button type="submit"><i class="fa fa-plus-square"></i></button>
</form>
这是我的JavaScript
$('form.ajax').on('submit',function(){
var that = $(this),url = that.attr('action'),type = that.attr('method'),data = {};
that.find('[name]').each(function(index,value){
var that = $(this),name = that.attr('name'),value = that.val();
data[name] = value;
});
$.ajax({
type: type,url: url,data: data,success: function(response) {
}
});
return false;
});
这是我要刷新的视图
@include('_includes.cart')
这是购物车视图
<h5>YOUR CART</h5>
<div >
@if (Cart::count() > 0)
<h5>{{ Cart::count()}} item(s) in Cart</h5>
<div class="cart-table">
@foreach (Cart::content() as $item)
<div class="cart-table-row">
<div class="cart-table-row-left">
<div class="cart-item-details">
<div class="cart-table-item">
<a href="">{{$item->model->prod_desc}}</a>
</div>
</div>
<div class="cart-table-price">
{{'BD ' . number_format($item->model->unit_price * $item->qty,3)}}
</div>
</div>
@endforeach
</div>
@else
<div class="cart-logo">
<i class="fa fa-shopping-bag"></i>
</div>
<h5>There are no items in your cart</h5>
@endif
</div>
我在购物车控制器中尝试了此操作,但未按预期进行。
$view = view('_includes.cart');
echo $view->render();