Hej, mam taki mały problem przy zliczaniu wartości. Ogólnie zasada trochę jak przy koszyku sklepowym a nawet dokładnie taka sama.
Ogólnie to jest jQuery i Laravel ale backendu nie dotyczy.
Jest sobie taka pętla
<div class="items-list">
@foreach($category->prices as $item)
<div class="row">
<div class="col-xl-7 col-lg-7 col-md-7 col-sm-12 col-xs-12">
{!! $item->name !!}
</div>
<div class="col-xl-1 col-lg-1 col-md-2 col-sm-6 col-xs-6">
{!! $item->price !!}
</div>
<div class="col-xl-1 col-lg-1 col-md-1 col-sm-6 col-xs-6">
{{ $item->unit }}
</div>
<div class="col-xl-1 col-lg-1 col-md-1 col-sm-6 col-xs-6">
<input min="1" class="sum-input" data-price="{{ $item->price }}" data-id="{{ $item->id }}" id="quantity-{{$item->id}}" style="padding: 3px" name="prices[{{$item->id}}][quantity]" type="number" placeholder="Ilość" aria-label="Ilość">
</div>
<div class="col-xl-1 col-lg-1 col-md-1 col-sm-6 col-xs-6">
<span id="sum-{{$item->id}}"></span>
</div>
</div>
@endforeach
</div>
i jak widać przy każdym rekordzie jest suma (cena * ilość). Aby obliczać to dynamicznie używam takiego kodu jQuery
<script>
$('.sum-input').change(function (e) {
const price = $(e.target).data('price');
const id = $(e.target).data('id');
let quantity = $(e.target).val()
$('#sum-'+id).text(price * quantity + ' zł')
});
</script>
działa to prawidłowo (zlicza cenę dla każdego rekordu po zmianie ilości. Teraz tylko pytanie, jak dynamicznie mogę zmieniać łączną cenę? Takie podsumowanie?