Preguntar al usuario para guardar el archivo a través de la llamada AJAX
Estoy exportando mi grilla DHTMLX a csv y he podido crear con éxito el archivo .CSV. El problema que tengo es que no está pidiendo al usuario que guarde / abra el archivo. Estoy usando una llamada de $ .post desde javascript para enviar la cadena CSV a PHP, luego escribo esa cadena en csv. Por alguna razón, no está creando una solicitud para el usuario, pero está escribiendo correctamente el archivo y guardándolo en el servidor. A continuación se muestra el código correspondiente:
JS:
myGrid.csvParser = myGrid.csvExtParser;
myGrid.setCSVDelimiter('|');
myGrid.csv.row = "endOfRow";
var gridCsvData = myGrid.serializeToCSV();
$.post(
"data/export.php",
{
csvdata: gridCsvData
}
);
PHP (export.php):
$csvData = $_REQUEST['csvdata'];
$csv = explode('endOfRow',$csvData);
$myfile = "grid.csv";
$fh = fopen($myfile, 'w') or die("can't open file");
foreach($csv as $line) {
fputcsv($fh, explode('|',$line),',','"');
}
fclose($fh);
//Redirect output to a client's web browser (csv)
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=grid.csv");
header("Pragma: no-cache");
header("Expires: 0");
Este código funciona perfectamente en el sentido de que exporta el Grid exactamente como lo quiero y lo guarda en 'grid.csv'. El problema es que no le está pidiendo al usuario que guarde el archivo. ¿Es este un problema con mis encabezados de PHP o necesito poner algo en el $ .post para que tenga éxito? ¡Gracias por cualquier ayuda!