Мне нужно загружать столбцы один за другим, используя AJAX, чтобы были видны промежуточные результаты. Я пытался разделить службу на функции, но запрос все еще один.
Код контроллера:
public function getAeroexpressAjax()
{
// $options['show_search_field'] = true;
// $options['show_filters'] = true;
// $model = new SearchMgtRoutesModel();
// list($form,$data) = $this->handleFormAndGetData(MgtScheduleType::class,$model,$options);
// $data = !$data ? $model : $data;
// list($from,$to) = explode('_',$data->getStation());
// $stops = $this->schedule->getAeroExpressSchedule($data,$from,$to,'suburban');
return $this->getTableAjax();
}
public function getTableAjax()
{
$options['show_search_field'] = false;
$options['show_aeroexpress'] = true;
$options['show_work_time'] = false;
$model = new SearchMgtRoutesModel();
list($form,$data) = $this->handleFormAndGetData(MgtScheduleType::class,$model,$options);
$data = !$data ? $model : $data;
list($from,$to) = explode('_',$data->getStation());
$params['form'] = $form->createView();
$params['ajaxSpecific'] = $this->getSpecificAjaxData(__METHOD__ . 'Ajax');
$params['stops'] = $this->schedule->getAeroExpressSchedule($data,$from,$to,'suburban');
$params['copyright'] = $this->schedule->getCopyright();
$html = $this->renderView('schedule/aeroRoute.html.twig', $params);
return new Response($html);
}
Код AJAX:
function aeroexpress() {
if($('.aeroSchedule').length) {
aeroexpressAjax();
}
}
function aeroexpressAjax() {
ajax('ScheduleController', 'getTable',null, {
done: function (data) {
$('.aeroSchedule').html($(data).find('#schedule-table').parent().html());
}
});
}