我正在将我的DHTMLX网格导出为csv,并成功创建了.CSV文件。我遇到的问题是它没有提示用户保存/打开文件。我使用JavaScript中的$.post调用将CSV字符串发送到PHP,然后将该字符串写入csv。由于某种原因,它没有为用户创建提示,但它成功地编写了文件并保存在服务器上。以下是相关代码:
JS:
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");
这段代码可以完美地将Grid导出为我想要的格式并保存到'grid.csv'文件中。问题在于它没有提示用户保存文件。这是我的PHP头部有问题还是我需要在$.post中加入某些内容来提示成功?感谢任何帮助!
.body
属性。如果你可以使用jQuery,我建议使用它。它可以解决这些愚蠢的跨浏览器问题。 - gen_Eric