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

时间:2016-04-11 16:04:51

标签: javascript php jquery ajax csv

我试图将多维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"

[...]

1 个答案:

答案 0 :(得分:1)

您正在传递原始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>