Buen Día, Amigos
Tengo un link en la vista con el cual deseo importar mi db a un excel, como este tarda 1 minuto, quiero hacerlo mas interactivo mostrando el mensaje “Importando..” Para ello estoy mandando llamar el Controlador/Metodo con Jquery solo que cuando termina me presenta 2 problemas: 1.-Para del estado beforeSend al always 2.-No baja el excel
<a class="btn btn-success btn-lg btn-block" role="button" aria-pressed="true" id="btnexp">Exportar a Excel</a>
Necesito mostrar un loader en lo que se importan todos los registros ya que tarda alrededor de 1 minuto
Al presionar en el link se ejecuta mi archivo.js
$ (document).ready(function () { $ ('#btnexp').on('click',function () { $ .post(baseurl+'Auditoriarncintercosites/exp_excel_lstinter', { beforeSend:function () { $ ('#status').text('Descargando..'); } }) .done(function($ data) { //data trae un string "Archivo Descargado Correctamente" $ ('#status').html($ data); }) .fail(function() { $ ('#status').text('La carga ha fallado;vuelve a internarlo..'); }) .always(function() { $ ('#status').text('La peticion ha concluido..'); }); }); });
Mi controlador tiene el metodo exp_excel_lstinter() el cual realiza el proceso de generar el excel
public function exp_excel_lstinter(){ //Intercositesexp_model.php
//nombres de la cabecera del Excel $ this->phpexcel->setActiveSheetIndex(0) ->setCellValue('A1','Campo1') ->setCellValue('B1','Campo2') ->setCellValue('C1','Campo3'); $ key = 2; //$ valores = $ this->Invenbodexp_model->getAll(); $ valores = $ this->Intercositesexp_model->getAll(); //print_r($ valores_tabla); //nombres obtenidos de la base de datos foreach ($ valores as $ celdas) { $ this->phpexcel->getActiveSheet()->SetCellValue('A'.$ key, $ celdas->campo1); $ this->phpexcel->getActiveSheet()->SetCellValue('B'.$ key, $ celdas->campo2); $ this->phpexcel->getActiveSheet()->SetCellValue('C'.$ key, $ celdas->campo3); $ key++; } $ this->phpexcel->getActiveSheet()->setTitle('LST_Inter_' . date("d-m-y")); $ this->phpexcel->setActiveSheetIndex(0); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="LST_Inter_'. date("d-m-Y"). '.xlsx"'); header('Cache-Control: max-age=0'); $ objWriter = PHPExcel_IOFactory::createWriter($ this->phpexcel, 'Excel2007'); $ objWriter->save('php://output'); **$ mensajedone = "Archivo Descargado Correctamente"; echo json_encode($ mensajedone);**
}//cierre de la funcion exp_excel_lstinter
De antemano agradezco su atención…