【问题标题】:How to export javascript ajax data to csv? [duplicate]如何将 javascript ajax 数据导出到 csv? [复制]
【发布时间】:2014-05-24 07:26:01
【问题描述】:

我想做什么: 1、使用Javascript ajax POST数组到PHP; 2、使用POST数组通过PHP从mysql中搜索结果; 3、以csv格式返回搜索结果,方便用户保存文件。 我已完成第 1 部分和第 2 部分,但无法返回 csv 文件 我使用 ajax 将数组数据发布到 PHP,如下所示:

$(document).ready(function(){
$('#export').click(function(){
    var list = JSON.stringify(count);
    $.ajax({
        type: "POST",
        url: "exportDataColoniesNumber.php",
        data: {'data': list},
        success: function(response){
            alert(response);
        }
    });
});
});

并处理exportDataColoniesNumber.php中的数据,页面是返回一个csv文件:

<?php
$data = json_decode($_POST['data']);
$last_key = end(array_keys($data));
$sql = "SELECT * FROM coloniesNumber WHERE ";
foreach ($data as $key => $value) {
    $sql .= "num='" . $value . ($key == $last_key ? "';" : "' OR ");
}

$con = DatabaseConnection::get()->connect();
mysql_query('set names utf8');
mysql_select_db('fish') or die('Could not select database');
$result = mysql_query($sql);

$lines = '';
while($row = mysql_fetch_array($result)) {
    $line = '';
    for($i = 0; $i < $fields; $i++) {
        $line .= $row[$i] . ",";
    }
    $lines .= trim($line) . "\n";
}
header("Content-type:application/vnd.ms-excel");
header("Content-disposition:csv".date("Y-m-d").".csv");
header("Content-disposition:filename=test.csv");
print "$lines";
?>

警报(响应)返回 csv 数据:

8,4008,11.267,fat,1,,
9,4009,12.022,thin,1,,
10,4010,11.356,thin,1,,
11,4011,10.873,thin,1,,
12,4012,11.017,thin,1,,
13,4013,11.301,thin,1,,

如何获取 csv 文件返回?

【问题讨论】:

标签: javascript php ajax csv


【解决方案1】:

我个人创建了一个导出到 csv 的 PHP 处理程序,请确保您有这些标头

header("Content-Disposition: attachment; filename=report.csv");
header("Content-Type: text/csv");

然后,只需回显您的数据、csv 格式或使用为您执行此操作的众多免费 csv 类之一(只需调用带有数组作为参数的函数)

然后让你的表单(假设你有一个)发布到一个隐藏的 1x1 像素的 iframe 并使用 css 设置屏幕外

iframe { position: absolute; left: -9999px; }

您应该已准备就绪,导出将弹出 - 但是,请确保文件不大或您的脚本需要很长时间才能完成 - 在此之前,下载不会显示。

【讨论】:

    猜你喜欢
    • 2020-08-03
    • 2013-04-11
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多