【发布时间】:2018-01-09 06:14:42
【问题描述】:
当我在视图中更改下拉列表的值时,我通过控制器中的 ajax 调用传递它以返回 2 个数组以更改 laravel 中同一视图中的 2 个其他下拉列表。
控制器代码为:
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"));
}
视图中的代码是
$('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 数据的值? 谢谢
【问题讨论】:
-
请在您的ajax成功回调函数中使用
console.log(data)的结果更新问题 -
console.log(data) 到底应该放在哪里?
-
在
success:function(data) { -
我把它和显示办公室:[] chars: []
-
这意味着您的 eloquent 查询中的
$offices和$chars什么都不返回
标签: javascript jquery arrays ajax laravel