从属下拉列表正在使用 Laravel 中的 ajax 返回 [对象对象]?

Dependent dropdown is returning [object object] using ajax in Laravel?

我有两个下拉城市和城市区域。我想根据城市的选定值填充城市区域下拉列表。

路线:

  Route::get('create-profile', 'ProfileController@index');
  Route::get('create-profile/city_area/{id}', 'ProfileController@city_area');

主要下拉菜单是:城市

<div class="col-xs-7 col-md-push-1">
<select name="city" id="city">
<option value="">--- Select City ---</option>
 @foreach($city as $city)
  <option value="{{$city->id}}">{{$city->city_name}}</option>
 @endforeach
 </select></div>

依赖下拉列表是

     <div class="inp_sec">
      <div class="col-xs-4">
      <label for="r3">City Area</label>
      </div><div class="col-xs-7 col-md-push-1">
      <select name="city_area" id="city_area"></select></div></div>

Ajax 的依赖下拉列表是

<script type="text/javascript">
$(document).ready(function() {
    $('select[name="city"]').on('change', function() {
        var cityID = $(this).val();
        if(cityID) {
            $.ajax({
                url: 'create-profile/city_area/'+cityID,
                type: "GET",
                dataType: "json",
                success:function(data) {
                    $('select[name="city_area"]').empty();
                    $.each(data, function(key, value) {
                        $('select[name="city_area"]').append('<option value="'+ key +'">'+ value +'</option>');
                    });
                }
            });
        }else{
            $('select[name="city_area"]').empty();
        }
    });
});

Php 获取相关下拉列表数据的代码是

public function city_area($id)
{
$city_area= DB::table('czech_area')->where('citi_id',$id)- 
>select('id','area_name')->get();
    return json_encode($city_area);
}

当您看到 [对象对象] 时,这是对象到字符串转换的明显标志。

city_area() 函数 returns 对象列表,稍后用 JSON 编码。因此,用于填充 city_area 下拉列表的 value 变量是一个 Javascript 对象,而不是字符串。您需要指定要使用的此对象的属性 - idarea_name 在您的情况下:

$('select[name="city_area"]').append('<option value="'+ value.id +'">'+ value.area_name +'</option>');