javascript - 具有hasMany关系的laravel动态下拉列表
问题描述
如何在使用javascript或jquery选择具有hasMany关系的类别时显示子类别?
那里有我的父表
public function ChildrenRasHewan() {
return $this->hasMany(RasHewan::class,'jenis_hewan_id');
}
这是我的子表又名子类别
public function ParentJenisHewan() {
return $this->belongsTo(JenisHewan::class,'jenis_hewan_id','id');
}
这就是我的控制器的样子:
public function index()
{
$this->data['adopsi'] = Adopsi::paginate(10);
return view('admin.dashboard.adopsi.index-adopsi', $this->data);
}
public function create()
{
$this->data['getStatusAdopsi'] = Adopsi::statusAdopsi();
$this->data['jenisHewan'] = JenisHewan::pluck('nama_jenis_hewan');
$this->data['rasHewan'] = JenisHewan::all();
return view('admin.dashboard.adopsi.create-adopsi',$this->data);
}
public function getRasHewan($id) {
$getRasHewan = DB::table('ras_hewans')->where('id',$id)->pluck('nama_ras_hewan','id');
return json_encode($getRasHewan);
}
这是我要应用动态下拉列表的索引视图:
<div class="form-group">
<label for="jenis_hewan_id">Jenis Hewan</label>
<select name="jenis_hewan_id" id="jenis_hewan_id" class="form-control @error('jenis_hewan_id') is-invalid @enderror" placeholder="">
<option value="">Pilih Jenis Hewan</option>
@foreach ($jenisHewan as $data)
<option value="{{$data->id}}" type="text">{{$data->nama_jenis_hewan}}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="ras_hewan_id">Ras Hewan</label>
<select name="ras_hewan_id" id="ras_hewan_id" class="form-control @error('ras_hewan_id') is-invalid @enderror" placeholder="" >
<option value="" selected disabled>Pilih Ras Hewan</option>
@foreach ($jenisHewan as $data)
@if($data->ChildrenRasHewan))
@foreach ($data->ChildrenRasHewan as $rasHewan )
<option value="{{$rasHewan->id}}">{{$rasHewan->nama_ras_hewan}}</option>
@endforeach
@endif
@endforeach
<select name="ras_hewan_id" id="ras_hewan_id" class="form-control"></select>
</select>
</div>
js脚本:
<script>
$(function() {
$('select[name=service_id]').change(function() {
var url = '{{ url('service') }}' + $(this).val() + '/categories/';
$.get(url, function(data) {
var select = $('form select[name= category_id]');
select.empty();
$.each(data,function(key, value) {
select.append('<option value=' + value.id + '>' + value.name + '</option>');
});
});
});
});
</script>
解决方案
推荐阅读
- ios - 如何播放scn模型的动画
- psql - PSQL:ROW_NUMBER 连续递增
- c# - 来自golang和c#的elixir函数的并行或异步任务
- c# - 如何在 web api 中返回相关实体,并从单独的 mvc 应用程序调用 web api
- javascript - 提交表单按钮出现错误“此页面正在运行”!
- python - 我正在尝试根据月份和年份从文件集合中读取特定数量的文件
- postgresql - 如何使用 python 格式化 postgres 查询输出
- javascript - 将动画列表与静态列表类似地对齐
- swift - 是否有一个 swift 数据结构可以包含可以是任何类型并且可以切换的 rawValue
- javascript - 获取登录屏幕的 typeError 反应本机?