2016-10-27 14 views
0

私はオブジェクトの配列を持ち、そのオブジェクトもオブジェクトの配列を持っています。私はajaxリクエストでそれを取得して、そのJSONデータで選択をしたいと思っています。私はたくさんの例を試しました。私はOPTGROUPとオプションで選択したいこのデータから配列オブジェクト内の配列オブジェクト

Object service_problems: 
    Array[3] 
    0: Object 
     id: 2 
     name: "bla bla" 
     problems: Array[2] 
      0: Object 
      id: 3, 
      name: 'blab bla' 

      1: Object 
      id: 4, 
      name: 'bla blae' 

<select> 
    <optgroup label="service_problems.name"> 
     <option value="3">blab bla</option> 
     <option value="4">bla blae</option> 
    </optgroup> 
</select> 

また、私のPHPコード:

if ($request->ajax()) { 
      $services = DeviceType::find($request->type_id); 
      $services = $services->services; 

      $service_with_problems = []; 

      function findServiceProblems($id) { 
       $service = Service::find($id); 
       return $service->serviceProblems; 
      } 

      foreach ($services as $service) { 
       $service_problems = findServiceProblems($service->id); 

       array_push($service_with_problems, [ 
        'id' => $service->id, 
        'name' => $service->name, 
        'service_problems' => $service_problems 
       ]); 
      } 

      return response()->json(['service_problems' => $service_with_problems]); 
     } 

ヘルプPLS)

答えて

0

解決の問題)

jQuery.map(data['service_problems'], function (problem) { 

    options += '<optgroup label="'+ problem.name +'">'; 

    jQuery.map(problem.problems, function (data) { 
     options += '<option>'+ data.name +'</option>'; 
    }); 

    options += '</optgroup>'; 
}); 
関連する問題