Monituj użytkownika o zapisanie pliku za pomocą wywołania AJAX
Eksportuję moją siatkę DHTMLX do csv i udało mi się utworzyć plik .CSV. Problem, który mam, polega na tym, że nie monituje on użytkownika o zapisanie / otwarcie pliku. Korzystam z wywołania $ .post z javascript, aby wysłać ciąg CSV do PHP, a następnie napisać ten ciąg do csv. Z jakiegoś powodu nie tworzy zachęty dla użytkownika, ale pomyślnie zapisuje plik i zapisuje go na serwerze. Poniżej znajduje się odpowiedni kod:
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");
Ten kod działa doskonale w tym sensie, że eksportuje siatkę dokładnie tak, jak chcę i zapisuje ją w „grid.csv”. Problem polega na tym, że nie monituje użytkownika o zapisanie pliku. Czy jest to problem z moimi nagłówkami PHP, czy muszę umieścić coś w $ .post, aby zapytać o sukces? Dzięki za pomoc!