无法获取json数据

时间:2018-04-23 12:51:19

标签: jquery json ajax laravel

我正在尝试在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。

2 个答案:

答案 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管理项目。因此,必须允许使用我们创建的路线。我忘记了,并被困在这里。当我允许用户的路由时,一切都开始工作。现在它完全正常运作。