php - 将 CSV 字符串从 Javascript 传递到 PHP

标签 php javascript csv dhtmlx

我正在尝试将 DHTMLX 网格导出到 CSV 文件。我已经设置了框架,但遇到了一个问题:如果我尝试导出超过 25 行,则会失败。没有错误消息或任何东西。下面是我的代码:

Javascript

myGrid.csvParser = myGrid.csvExtParser;
myGrid.setCSVDelimiter('|');
myGrid.csv.row = "endOfRow";

var gridCsvData = myGrid.serializeToCSV();

$.post("data/export.php?csvdata="+gridCsvData);

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: text/csv");
header("Content-Disposition: attachment; filename=grid.csv");
header("Pragma: no-cache");
header("Expires: 0");

readfile('grid.csv');

感谢任何帮助。我认为这是 POST 上的某种大小限制问题,我尝试将 .htaccess 文件中的限制修改为 20MB。正如我所说,这仅适用于几行 (<25),但一旦我尝试导出更多行,它就永远不会生成 .csv 文件。

最佳答案

我猜 $.post (来自 jQuery,对吗?)不能处理这么大的 url。您应该添加一个可以作为 HTTP POST 查询参数处理的参数:

$.post(
  "data/export.php", 
  { 
    csvdata: gridCsvData
  }
);

关于php - 将 CSV 字符串从 Javascript 传递到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12094147/

相关文章:

php - 数据无法在表单中显示

php - 上传base64图片到amazon s3

php - 创建包含可保存和可检索内容的便签纸页面的最佳方法是什么?

python - 导入错误 : No module named gspread or csv?

linux - 如何将 .CSV 文件的标题与动态字段名称相匹配

PHP&SQL 选择最高分

php - 在 Laravel 中保存表单数据的正确方法是什么(使用注入(inject)模型)?

javascript - 每个单独 ID 的 jQuery min(最小值)

javascript - 如何在 Verold 脚本中获取 Three.js sprite

bash - 用于在一大行逗号分隔字符串的每第 n 个元素中插入换行符的 Shell 命令