我正在尝试在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>
现在,我的'改变'正在发挥作用,我可以通过警报看到。它正在获取国家ID。此国家/地区ID作为country_id保存在我的“分支”表中。我正在尝试使用country_id从'branch'表中获取数据。 当我使用alert()查看数据时,它表示“未定义”。 我的路线是:
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。所以不知道别的什么。我正在遵循其他人的代码来实现这一目标。但它似乎不适合我。 我正在使用Laravel 5.5和XAMPP。
答案 0 :(得分:0)
这是因为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);
}
希望这有帮助
答案 1 :(得分:0)
谢谢大家。我今天早上发现了问题。实际上我正在开发一个Office管理项目。因此,必须允许使用我们创建的路线。我忘记了,并被困在这里。当我允许用户的路由时,一切都开始工作。现在它完全正常运作。