当我更改 View 中下拉列表的值时,我通过 Controller 中的 ajax 调用传递它,以返回 2 个数组,以更改 laravel 中同一 View 中的其他 2 个下拉列表。
Controller 代码是:
public function CreatGegCityAjax($id)
{
$offices = \App\office::where("city_id",$id)->orderBy('name','asc')->get()->pluck('name','id');
$chars = \App\Char::where("city_id",$id)->orderBy('name','asc')->get()->pluck('name','id');
return json_encode(array('offices' => "$offices",'chars' => "$chars"));
}
View 中的代码是
$('select[name="city_id"]').on('change', function() {
var cityID = $(this).val();
if(cityID) {
$.ajax({
url: '/admin/gegonos/ajax/city/'+cityID,
type: "GET",
dataType: "json",
success:function(data) {
$('select[name="office_id"]').empty();
$.each(data, function(key, value) {
$('select[name="office_id"]').append('<option value="'+ key +'">'+ value.offices +'</option>');
});
$('select[name="char_id"]').empty();
$.each(data, function(key, value) {
$('select[name="char_id"]').append('<option value="'+ key +'">'+ value.chars +'</option>');
});
}
});
}else{
$('select[name="office_id"]').empty();
$('select[name="char_id"]').empty();
}
});
这没有错误,但它没有在下拉列表中获取值。它显示“未定义”。 如何使用右侧下拉列表中的每个数组拆分 json 数据的值? 谢谢
最佳答案
在你的 Controller 中尝试一下:
return response()->json(['offices'=>$offices, 'chars'=>$chars]);
请参阅此处有关 Laravel json 响应的信息:http://coursesweb.net/laravel/responses#anc_jre
- 然后,将
console.log(data)
放入success:function
中,在控制台中查看收到的响应,并根据其结构对其进行解析。
关于javascript - jquery ajax传递2个数组,然后拆分它们并在laravel中单独使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45453740/