将多维Javascript数组保存到服务器端CSV

Saving multidimensional Javascript array to server-side CSV

本文关键字:服务器端 CSV 保存 数组 Javascript      更新时间:2024-04-21

我正在尝试将多维Javascript数组保存为服务器上的CSV文件。到目前为止,我的代码创建了CSV文件,但该文件不包含我的数组,我不知道为什么。

(其中建立outputData)

function dataSave(){
outputStr = JSON.stringify(outputData);
$.ajax({
    type: "POST",
    url: "csvout.php",
    data: outputStr,
    dataType: 'html',
});}

csvout.php:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<?php    
$array = json_decode($_POST['outputStr']);
$file = fopen("out/data.csv","w");
foreach ($array as $line){
    foreach ($line as $item){
        fputcsv($file,explode(',',$item));
        }
    }
fclose($file); 
?>
</head>
<body>
</body>
</html>

数据是一个像这样的数组数组——它是从参与科学实验的客户那里获得的数据。一切都是一根绳子。

0: "tuba.mp3"
1: "prac"
2: "1"
3: "0"
4: "type1"
5. "500"
0: "clap.mp3"
1: "main"
2: "0"
3: "0"
4: "type1"
5. "300"
[...]

您正在传递一个原始JSON字符串作为查询参数,但试图将其作为命名参数进行访问。更新代码:

function dataSave(){
outputStr = JSON.stringify(outputData);
$.ajax({
    type: "POST",
    url: "csvout.php",
    data: { outputStr: outputStr },
    dataType: 'html',
});}

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<?php    
$array = json_decode($_POST['outputStr']);
adding var_dump($array); here produces NULL
$file = fopen("out/data.csv","w");
foreach ($array as $line){
    fputcsv($file,$item);
}
fclose($file); 
?>
</head>
<body>
</body>
</html>