我正在尝试在Laravel项目中制作动态下拉列表。所以我尝试使用Jquery和Ajax来实现。我使用以下脚本来完成我的工作:
<script type="text/javascript">
$('#country').on('change', function(){
var country_id = $('#country').val();
var op=" ";
alert(country_id);
$.ajax({
type:'GET',
url:'{{route('getBranch')}}',
data:{'id':country_id},
success:function(data){
console.log(data);
alert(data[0].branch_name);
}
}
});
});
</script>
现在,我的“on change”正在工作,我可以通过警报看到这一点。它正在获取国家/地区ID。此国家/地区ID在我的‘分支’表中保存为country_id。我正在尝试使用country_id从'branch‘表中获取数据。当我使用alert()查看数据时,它显示'undefined‘。我的路线是:
Route::get('/get_branch',[
'as' => 'getBranch',
'uses' => 'EmployeeInfoController@countryBranch',
'title' => 'Getting Branch Name'
]);
此路由应命中控制器中的以下函数:
public function countryBranch(Request $request){
$country_id = $request->id;
$branch = Branch::where('country_id',$country_id)->get();
return response()->json($branch);
}
这是我第一次使用Jquery和Ajax。所以我什么都不知道。我正在遵循其他人的代码来实现这一点。但它似乎对我不起作用。我正在使用带有XAMPP的Laravel 5.5。
发布于 2018-04-23 12:56:20
这是因为get()
返回集合,而json()
方法接受一个数组,所以在获得结果后使用toArray()
。
你可以这样试一下
public function countryBranch(Request $request){
$country_id = $request->id;
$branch = Branch::where('country_id',$country_id)->get()->toArray();
return response()->json($branch);
}
希望这能有所帮助
发布于 2018-04-24 04:55:41
谢谢大家。今天早上我已经弄清楚了这个问题。实际上,我正在做一个Office管理项目。因此,我们创建的路由必须被允许使用。我忘了这一点,被困在这里了。当我允许用户的路由时,一切都开始工作了。现在它已经完全具备了功能。
https://stackoverflow.com/questions/49981584
复制相似问题