2016-09-09 6 views
0
私はこれは私がjqueryの

LaravelにjqueryのでJSON配列の読み方5.2

{ 

"screens": 
[{"screen_id":1,"screen_name":"Screen 1 ","screen_msg":"Hello","screen_status":"Active","cinema_id":1,"created_at":"2016-09-08 04:34:28","updated_at":"2016-09-08 04:34:28"}], 

"showtime": 
    [{"show_id":6,"movie_id":1,"dimensional":"2D","cinema_id":1,"screen_id":1,"show_date":"2016-10-04","show_time":"00:57:00","show_status":"Active","created_at":"2016-09-08 12:21:06","updated_at":"2016-09-08 12:21:06"}, 
    {"show_id":7,"movie_id":1,"dimensional":"2D","cinema_id":1,"screen_id":1,"show_date":"2016-10-04","show_time":"00:57:00","show_status":"Active","created_at":"2016-09-08 12:22:15","updated_at":"2016-09-08 12:22:15"}] 

} 

私のコントローラにレスポンスとして取得していますものです5.2

laravelで複数の雄弁のオブジェクトを取得するために、AJAX-jqueryのを使用しています

機能コード

public function getscreen($id) 
{ 
    $screens=Movies_screen::where('cinema_id',$id)->get(); 
    $showtime=Movies_showtimes::where('cinema_id',$id)->get(); 

    return response()->json(['screens' => $screens, 'showtime' => $showtime]); 
} 

私は

$("#cinemahall").on("change click",function(){ 

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

     $("#screenname").empty(); 
     $("#screenname").append('<option value=0>Select Screen</option>'); 

     $.each(data,function(index,screenobj){ 
      $("#screenname").append('<option value="' +screenobj.screens[0].screen_id + '">' +screenobj.screens[0].screen_name +'</option>'); 
     }); 
    }); 
}); 
としてのjQueryのものJSON配列を読んでいますコンソールで

iは、エラーなしで適切なデータを見ることができますが、私はこの問題を把握するのに役立つ必要

screenobj.screens[0].screen_name 

を使用してJSONレスポンスのそれぞれすべてのフィールドにアクセスすることができません。あなたはdataあなたが取得しているためです

または

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

答えて

1

を行います。

.get()リクエストと一緒にdataTypeを渡すか、を使用して返されたデータをJS Objectに変換する必要があります。

送信要求と共にDataTypeを定義する構文については、hereを参照してください。このようなJSオブジェクトにプレーンな文字列を解析するために

var data=JSON.parse(data); 
+0

私は複数の行を取得する可能性があるので、あなたの目のオプションは、私のためによく働い下に述べたようにあなたは画面データを読み取ることができますこのコードは、1行だけでなく複数の行に対しても機能します。 – dollar

+0

はい、あなたはshowtimeと同じことをすることができます – madalinivascu

0

がオブジェクトではありませんループを必要としないdata.screens[0].screen_name

1

$("#screenname").empty(); 
     $("#screenname").append('<option value=0>Select Screen</option>'); 

$.each(data.screens,function(index,screenobj){ 
      $("#screenname").append('<option value="' +screenobj.screen_id + '">' +screenobj.screen_name +'</option>'); 
     }); 
関連する問題