2016-09-08 2 views
0

Я пытаюсь получить несколько красноречивых объектов через ответ контроллера json при выпадающем списке.Как читать ответ ajax с несколькими объектами в laravel 5.2

enter image description here

Когда кинозал изменяется, то он должен вернуть 2 объекты, получаемые из 2 разных таблиц.

код контроллера

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

    return response()->json($screens); 
} 

мой код JQuery Ajax

$("#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.screen_id + '">' +screenobj.screen_name +'</option>'); 
     }); 
    }); 
}); 

Приведенный выше код работает отлично, когда одного красноречивый объект отправляется т.е. $ экранов, но как вы можете видеть в коде есть другой объект т.е. $ showtime, и мне нужно отправить то же самое с этим запросом и прочитать его в моем jQuery ajax-коде.

Я пытался в контроллере

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

    return response()->json($screens,$showtime); 
} 

и в коде Jquery

$.get('/askspidy/admin/showtime/getscreen/' + cinema_id, function(data,data2) 

, но ни один из раствора не работал.

ответ

1

Вы можете вернуть массив с индексами, указывающими на различные коллекции :

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

В JSON это будет переведено на объект Javascript с двумя свойствами, «экраны» и «Showtime»:

$.get('/askspidy/admin/showtime/getscreen/' + cinema_id, function(data) { 
    console.log(data.screens); 
    console.log(data.showtime); 
}); 
+0

его работы, но нужно одна помощь, я пытаюсь получить это отображается в виде $ .each (данные, функция (индекс, screenobj) { $ ("# screenname"). append (''); }); но его «не работает», вы можете понять проблему. Спасибо – dollar

+0

@dollar Пожалуйста, выберите новый вопрос. – Elias

1

Верните отклик в массиве:

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

Затем доступ через ваш GET запроса, используя . синтаксис для объектов JS:

$.get("URL", function(data){ 
    console.log(data.screens); 
    // or 
    console.log(data.showtimes); 
}); 
Смежные вопросы