2016-09-07 30 views
2

我想根據在Laravel的第一個下拉列表中選擇的值填充第二個下拉列表。無法在Laravel 5.2的Jquery代碼中讀取json數據

enter image description here

當選擇電影院,它應該填充屏幕下拉,所以我在這裏使用AJAX這樣做。

我的代碼是下面

HTML代碼

<div class="form-group"> 
          <label class="control-label col-md-3">Cinema Hall 
           <span class="required" aria-required="true"> * </span> 
          </label> 
          <div class="col-md-4"> 
           {!! Form::select('cinema_id',$cinemahall,Null,array('class'=>'bs-select form-control','aria-invalid'=>'false','id'=>'cinemahall')) !!} 
          </div> 

         </div> 

         <div class="form-group"> 
          <label class="control-label col-md-3">Screen 
           <span class="required" aria-required="true"> * </span> 
          </label> 
          <div class="col-md-4"> 
           {!! Form::select('screen_id',[],Null,array('class'=>'bs-select form-control','aria-invalid'=>'false','id'=>'screenname')) !!} 
          </div> 

         </div> 

jQuery代碼

<script> 
      $(document).ready(function(){ 
       $("#cinemahall").change(function(){ 

        var cinema_id=$("#cinemahall option:selected").val(); 
        //ajax 
        $.get('/askspidy/admin/showtime/getscreen/' + cinema_id, function(data){ 
         $("#screenname").empty(); 
         // console.log(data); 

         $.each(data,function(index,screenobj){ 
          $("#screenname").append('<option value="' +screenobj.screen_id + '">' +screenobj.name +'</option>'); 

         }); 
        }); 
       }); 
      }); 
    </script> 

路線

Route::get('/admin/showtime/getscreen/{id}','Admin\[email protected]'); 

控制器功能

public function getscreen($id) 
{ 
    $screens=Movies_screen::where('cinema_id',$id)->get(); 
    return response()->json($screens); 
} 

我CONSOLE.LOG(數據)檢查其顯示正確的數據沒有問題

enter image description here

但下拉列表填充是這樣

enter image description here

幫我解決這個。

回答

1

如圖您迴應預覽您應該screenobj.screen_name取代screenobj.name

$("#screenname").append('<option value="' +screenobj.screen_id + '">' +screenobj.screen_name +'</option>'); 
1

變化namescreen_namescreenobj.screen_name

$("#screenname").append('<option value="' +screenobj.screen_id + '">' +screenobj.screen_name +'</option>'); 
0

哦~~我很愚蠢花了幾個小時搞清楚這個問題,我改變screenobj.name到screenobj.screen_name和它的工作...