javascript - 如何在每个 foreach laravel 中显示不同的 ajax 响应?
问题描述
我使用 ajax 根据产品的重量、产品的原产地 (city_origin) 以及产品的交付地点来显示每个商店的运费。. 这是脚本:
$('select[name="kurir"]').on('change', function(){
let origin = $("input[name=city_origin]").val();
let destination = $("select[name=alamat]").val();
let courier = $("select[name=kurir]").val();
let weight = $("input[name=weight]").val();
if(courier){
jQuery.ajax({
url:"/origin="+origin+"&originType=city&destination="+destination+"&destinationType=city&weight="+weight+"&courier="+courier,
type:'GET',
dataType:'json',
success:function(data){
$('select[name="layanan"]').empty();
$.each(data, function(key, value){
$.each(value.costs, function(key1, value1){
$.each(value1.cost, function(key2, value2){
$('select[name="layanan"]').append('<option value="'+ key +'">' + value1.service + '-' + value1.description + '-' +value2.value+ '</option>');
});
});
});
}
});
} else {
$('select[name="layanan"]').empty();
}
});
这很好用,但是当我想使用 foreach 显示多个商店时,它只适用于第一个商店,并且将相同的运费迭代到其他商店,. 这是视图部分中显示商店的代码:
<div style="display: none">
{{ $weight = 0 }}
</div>
@foreach ($barangs as $key=>$value)
<div class="card" style="margin-top:10px;">
<div class="card-body">
<div class="row">
<div class="col-12">
@php
$tokos = collect($toko)->where('id','=', $key);
$tok = json_decode($tokos, true);
@endphp
@foreach ($tok as $tk)
<input style="display: none" type="text" value="{{ $tk['kota'] }}" class="form-control" id="city_origin" name="city_origin">
<p style="font-weight:bold; color:#00463B"><i class="icon-basket"></i> {{ $tk['nama'] }}</p>
@endforeach
</div>
</div>
@foreach ($value as $row)
<div class="row" style="margin-top:30px;">
<div class="col-2">
<img src="{{$row['foto1']}}" alt="" style="width:70px;">
</div>
<div class="col-5">
<p>{{$row['nama']}}</p>
</div>
<div class="col-2">
<p>{{$row['pivot']['jumlah']}}</p>
</div>
<div class="col-3">
<p>Rp. {{ number_format($row['pivot']['jumlah']*$row['harga'])}}</p>
<div style="display: none">{{$weight += ($row['berat']) }}</div>
<input style="display: none" type="text" value="{{$weight}}" class="form-control" id="weight" name="weight">
</div>
</div>
@endforeach
</div>
<div class="card-body">
<div class="row">
<div class="col-12">
<div class="input-group mb-3">
<select class="form-select" name="kurir" id="kurir">
<option value="">Pilih Kurir</option>
<option value="jne">JNE</option>
<option value="tiki">TIKI</option>
<option value="pos">POS</option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="input-group mb-3">
<select class="form-select" name="layanan" id="layanan">
<option value="">Pilih Layanan</option>
</select>
</div>
</div>
</div>
</div>
</div>
这是您可以获得“alamat”值的地方:
<select class="form-select" name="alamat" aria-label="Default select example">
@foreach ($alamat[1] as $row)
<option value="{{$row['kota']}}">{{$row['nama_alamat']}} - {{$row['nama']}}</option>
@endforeach
</select>
我应该怎么做才能得到不同的反应?这样我就可以为每个商店选择送货服务。我是javascript的新手,您的任何建议都会非常有帮助,谢谢。
解决方案
推荐阅读
- python - 日期时间自动转换为 Int
- python - 如何从 Counter 库中绘图?
- reactjs - 如何让 TypeScript 知道我正在使用哪些 proptypes?
- angular - Angular MFE - WebPack5 - 模块联合 - 图像路径问题
- xamarin - Xamarin.Form 共享 Essentials 图像和 URL 以同时发送两者
- react-native - 大炮读取未定义的属性(读取地图)
- typescript - React 测试库 - 如何测试字符串
文本 里面 - html - 设置文本溢出中的点数:省略号;
- javascript - 改进我的功能以减少重复值
- pdf - LaTeX:在一页上插入两个旋转的页面