Веб-страница имеет форму заказа, которая передает данные в экземпляр контейнера корзины.
Я смог сделать это без обновления всей страницы с помощью 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();