Я планирую использовать phpspreadsheet для извлечения наших расходов непосредственно из базы данных. Я все еще в учебной части, но я думал о том, что мне нужно передать данные из внешнего интерфейса (опция выбора) в бэкэнд, чтобы определить, из какой ветви и типа расходов я буду получать из базы данных. Если непосредственно из href = "/ sampleRoute" из тега привязки, он будет загружен, но если я попытаюсь пройти через ajax, он не будет.
пример кода моего маршрута, ajax и контроллера. код внутри контроллера взят из учебника, но ajax - это просто я пытаюсь что-то еще.
МАРШРУТ
Route::get('/excel_tf_breakdown', 'excelController@excel_tf_breakdown');
AJAX
$(document).on('click', '#btnExport', function(){
test = 'test';
$.ajax({
url: '/excel_tf_breakdown',
data: {
test:test
},
method: 'get',
dataType: 'json',
success:function(data){
}
});
});
CONTROLLER
public function excel_tf_breakdown(Request $request){
info($request->test);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '#');
$sheet->setCellValue('A2', 'First');
$sheet->setCellValue('A3', 'First');
$sheet->setCellValue('A4', 'First');
$filename = 'sample.xlsx';
//redirect output to client
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
exit;
}
Запрос-> тест работает, но не загружает файл Excel. Я хотел бы знать, как я могу экспортировать в Excel с помощью AJAX.