Ver Mensaje Individual
  #22 (permalink)  
Antiguo 30/03/2016, 09:37
fioranionline
 
Fecha de Ingreso: marzo-2016
Mensajes: 2
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Ajax Abrir pagina en nueva ventana y mandar por post

Antvo, estoy buscando hacer lo mismo...

Cómo lo resolviste?

Yo quiero hacer un botón de exportar a excel...

Con un onclick en el botón que llama a una funcion de javascript, se ejecuta un ajax que envia datos a un PHP. Ese PHP arma un excel (si lo ejecuto directamente, poniendo los datos a la fuerza, me da la opción de guardar el excel perfectamente)... pero cuando quiero enviar a una nueva página el resultado del ajax solo obtengo caracteres raros...

El php básicamente cambia los headers para archivos excel, arma el excel y ofrece guardarlo.

Pero cuando traslado el resultado de ese PHP con el succes del jquery Ajax, nada sucede...

Pensé en enviar como resultado del ajax, todo el código Entero... pero no estoy seguro si funcionará...

Va la funcion
function armar_informe_proveedor() {

procesando_emergente();

var desde = $("#periodo_desde").val();
var hasta = $("#periodo_hasta").val();
var id_sucursal = $("#id_depositos").val();

$.ajax({
url: "content/armar_informe_proveedor.php",
global: false,
type: "get",
data: ({
desde : desde,
hasta : hasta,
id_sucursal : id_sucursal
}),
dataType: "html",
success: function(transport){
WinId = window.open('', 'newwin', 'width=400,height=500');//resolucion de la ventana
WinId.document.open();
WinId.document.write(transport);
WinId.document.close();
$("#form_procesando").hide();
}
});
}

Va el PHP con excel a mano...

// Se modifican los encabezados del HTTP para indicar que se envia un archivo de Excel.

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="ventas_proveedor.xlsx"');
header('Cache-Control: max-age=0');
require_once ('../PHPExcel/Classes/PHPExcel.php');

error_reporting(E_ALL);
ini_set('display_errors', 1);
$objPHPExcel = new PHPExcel();

// Establecer propiedades
$objPHPExcel->getProperties()
->setCreator("Cattivo")
->setLastModifiedBy("Cattivo")
->setTitle("Informe para Proveedor")
->setSubject("Informe para Proveedor")
->setDescription("Demostracion sobre como crear archivos de Excel desde PHP.")
->setKeywords("Excel Office 2007 openxml php")
->setCategory("Pruebas de Excel");

// Agregar Informacion
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'Valor 1')
->setCellValue('B1', 'Valor 2')
->setCellValue('C1', 'Total')
->setCellValue('A2', '10')
->setCellValue('C2', '=sum(A2:B2)');


// Renombrar Hoja
$objPHPExcel->getActiveSheet()->setTitle('ventas');

// Establecer la hoja activa, para que cuando se abra el documento se muestre primero.
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit();

Voy a probar mandar a la nueva ventana la replica del php que funciona solo...

Abrazo y agradezco cualquier ayuda!