我正在制作项目,使管理网站保持教会成员或团体的记录。
我仍在学习php并学习使用laravel框架。
我有 数据库表:
现在,我需要在注册页面中创建选择下拉列表, 怎么做 当人们选择家庭领袖时 第二个选择下拉弹出窗口,里面的列表取自FamilyMember Table
当其他人选择AreaMember的领导者时 第二个选择下拉弹出窗口,里面的列表取自AreaMember Table
在此之前,我搜索了关键字“依赖下拉列表”和“国家/地区下拉列表”
但是他们中的许多人只是使用2个表来解释,例如类别和子类别表
我只是不确定如何正常编码标准/正确的方法来解决这个问题?
我非常感谢每一个帮助,并且非常感激。
这是我最近尝试做的代码
对于创建页面
{{ csrf_field() }}
<div class="field">
{!! Form::label('name', 'Nama Lengkap', ['class'=>'label']) !!}
<div class="control">
{!! Form::text('name', null, ['id'=>'name', 'class'=>"input {{ $errors->has('name') ? 'is-danger' : '' }}"]) !!}
</div>
@if($errors->has('name'))
<p class="help is-danger">{{ $errors->first('name') }}</p>
@endif
</div>
<div class="field" id="rank_group">
{!! Form::label('rank_id', 'Jabatan', ['class'=>'label']) !!}
<div class="control">
<div class="select">
{!! Form::select('rank_id', $rankData , null, array('id'=>'rank_select', 'placeholder'=>'Pilih Jabatan')) !!}
</div>
</div>
@if($errors->has('family_id'))
<p class="help is-danger">{{ $errors->has('family_id') }}</p>
@endif
</div>
<div class="field" id="family_group">
{!! Form::label('family_id', 'Family', ['class'=>'label']) !!}
<div class="control">
<div class="select">
{!! Form::select('family_id', $familyData , null, array('id'=>'family_select', 'placeholder'=>'Pilih FA')) !!}
</div>
</div>
@if($errors->has('family_id'))
<p class="help is-danger">{{ $errors->has('family_id') }}</p>
@endif
</div>
<div class="field" id="district_group">
{!! Form::label('district_id', 'Rayon', ['class'=>'label']) !!}
<div class="control">
<div class="select">
{!! Form::select('district_id', $districtData , null, array('id'=>'district_select', 'placeholder'=>'Pilih Rayon')) !!}
</div>
</div>
@if($errors->has('family_id'))
<p class="help is-danger">{{ $errors->has('family_id') }}</p>
@endif
</div>
<div class="field" id="area_group">
{!! Form::label('area_id', 'Wilayah', ['class'=>'label']) !!}
<div class="control">
<div class="select">
{!! Form::select('area_id', $areaData , null, array('id'=>'area_select', 'placeholder'=>'Pilih Wilayah')) !!}
</div>
</div>
@if($errors->has('family_id'))
<p class="help is-danger">{{ $errors->has('family_id') }}</p>
@endif
</div>
{!! Form::submit($buttonLabel, ['class'=>'button is-success is-outlined is-fullwidth m-t-50']) !!}
在LeaderController中这是创建功能
public function create()
{
$rankData = Rank::pluck('position', 'id');
$familyData = Family::pluck('name', 'id');
$districtData = District::pluck('name', 'id');
$areaData = Area::pluck('name', 'id');
return view('leader.create', compact('familyData','districtData','areaData','rankData'));
}
在Script标签中,我只使用hide和show jquery,因为我还没有很好地理解如何使用AJAX从3或4个不同的表获取数据取决于之前的选择 所以我提出了这个代码
$("#family_group").hide();
$("#district_group").hide();
$("#area_group").hide();
$("#rank_select").on('change', function(data){
var id = data.target.value;
switch(id){
case '1':
$("#family_group").show();
$("#district_group").hide();
$("#area_group").hide();
break;
case '2':
$("#family_group").hide();
$("#district_group").show();
$("#area_group").hide();
break;
case '3':
$("#family_group").hide();
$("#district_group").hide();
$("#area_group").show();
}