我在编辑页面中有相关的下拉选择来编辑员工资料。选择的视图是这样的:
<div class="form-group">
<div class="row">
<div class="col-lg-3">
<label for="kategori">Kategori:</label>
</div>
<div class="col-lg-4">
<select name="kategori" class="form-control select2" style="width:250px">
<option value="">--- pilih ---</option>
@foreach ($categories as $key => $value)
<option value="{{ $key }}">{{ $value }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-lg-3">
<label for="pangkat">Pangkat:</label>
</div>
<div class="col-lg-4">
<select name="pangkat" class="form-control select2"style="width:250px">
<option>--pilih--</option>
</select>
</div>
</div>
</div>
ajax脚本如下:
<script type="text/javascript">
jQuery(document).ready(function ()
{
jQuery('select[name="kategori"]').on('change',function(){
var CatID = jQuery(this).val();
if(CatID)
{
jQuery.ajax({
url : '/edit_profil/{id}/getpangkat/' +CatID,
type : "GET",
dataType : "json",
success:function(data)
{
console.log(data);
jQuery('select[name="pangkat"]').empty();
jQuery.each(data, function(key,value){
$('select[name="pangkat"]').append('<option value="'+ key +'">'+ value +'</option>');
});
}
});
}
else
{
$('select[name="pangkat"]').empty();
}
});
});
</script>
这是编辑页面和选择值的路由代码:
Route::get('/edit_profil/{id}', 'Modul\ProfilController@edit')->name('editProfil');
Route::get('edit_profil/{id}/getpangkat/','Modul\ProfilController@getpangkat');
编辑页面的控制器是:
$dataItemregistration = DB::table('itemregistrations')
->join('sections', 'itemregistrations.sectionid', '=', 'sections.sectionid')
->join('categories', 'itemregistrations.categoryid', '=', 'categories.categoryid')
->join('sandaran', 'itemregistrations.sandarid', '=', 'sandaran.sandarid')
->join('statusrumah', 'itemregistrations.statusrumahid', '=', 'statusrumah.statusrumahid')
->join('bangsa', 'itemregistrations.bangsaid', '=', 'bangsa.bangsaid')
->join('kahwin', 'itemregistrations.kahwinid', '=', 'kahwin.kahwinid')
->join('agama', 'itemregistrations.agamaid', '=', 'agama.agamaid')
->join('jantina', 'itemregistrations.jantinaid', '=', 'jantina.jantinaid')
->join('negeri', 'itemregistrations.negeriid', '=', 'negeri.negeriid')
->join('statuspro', 'itemregistrations.statusproid', '=', 'statuspro.statusproid')
->join('statuspengundi', 'itemregistrations.statuspengundiid', '=', 'statuspengundi.statuspengundiid')
->join('kategori_bank', 'itemregistrations.bankid', '=', 'kategori_bank.bankid')
->join('operasi', 'itemregistrations.operasiid', '=', 'operasi.operasiid')
->select('itemregistrations.*', 'sections.sectionname', 'categories.categoryname', 'sandaran.sandarname', 'statusrumah.status_rumah_semasa', 'bangsa.bangsaname','kahwin_status', 'agamaname', 'jantinaname', 'negeriname', 'statusproname', 'statusmengundi', 'bankname', 'operasiname')
->where('itemregistrations.itemregistrationid', $id)
->first();
$categories = DB::table('categories')->pluck("categoryname","CategoryID");
return view('profil.edit', compact('dataItemregistration', 'categories', 'id'));
getpangkat 的控制器是:
public function getpangkat($id)
{
$operasi = DB::table("operasi")->where("CategoryID",$id)->pluck("operasiname","OperasiID");
return json_encode($operasi);
}
由于 url 路径,我在获取依赖下拉列表的值时遇到问题。编辑页面路径包含像“ http://127.0.0.1:8000/edit_profil/194 ”这样的员工 ID ,但我不知道如何在 ajax 调用中设置包含员工 ID 值的 url。
如何修改代码以获得依赖的下拉菜单?
将您的 ajax 网址更改为此,因为您需要id
在/edit_profil/
和/getpangkat/
url : 'edit_profil/{{ $id }}/getpangkat/' +CatID,
在你的路线,你需要指定的变量CatID
也
Route::get('edit_profil/{id}/getpangkat/{CatID}','Modul\ProfilController@getpangkat');
在你的功能中
public function getpangkat($id, $CatID)
{
$operasi = DB::table("operasi")->where("CategoryID",$CatID)->pluck("operasiname","OperasiID");
return json_encode($operasi);
}
希望能帮助到你!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句