【发布时间】:2014-11-03 08:52:10
【问题描述】:
所以我有这个 csv 文件(csv 文件可能最好位于服务器端,但尚未决定)。用户很可能会从下拉菜单中看到从这些 csv 文件中进行选择的选项。然后在选择特定文件后,用户单击“输入”,然后这个选定的 csv 文件应该在 javascript 中作为数组读取。那么如何做到这一点? :-
我的问题是How to pass variables and data from PHP to JavaScript?
___csv_file____
Class, Subclass, Company, Product,
Chocolate, Wafer chocolate, Nestle, KitKat,
Chocolate, White chocolate, Nestle, Milkybar,
Chocolate, White chocolate, Nestle, Milkybar,
Chocolate, Caramel chocolate, Nestle, BarOne,
Chocolate, Milk chocolate, Nestle, Nestle Milk chocolate,
Chocolate, Milk chocolate, Nestle, Nestle Milk chocolate,
Chocolate, Milk chocolate, Nestle, Nestle Milk chocolate,
Chocolate, Milk chocolate, Nestle, Nestle Milk chocolate,
Chocolate, Milk chocolate, Cadbury, Dairy milk,
为了手动阅读,这就是我们所做的。但正如您所看到的,它对所有 csv_data 进行了硬编码,但我想让它自动化(即通过读取 csv 文件生成)
root = {
"name": "Chocolate", "tag":"class",
"children": [
{
"name": "Wafer", "tag":"subclass",
"children": [
{
"name": "Nestle", "tag":"company",
"children": [
{"name": "KitKat", "tag":"product"}
]
}
]
},
{
"name": "White", "tag":"subclass",
"children": [
{
"name": "Nestle", "tag":"company",
"children": [
{"name": "Milkybar", "tag":"product"}
]
}
]
},
{
"name": "Caramel", "tag":"subclass",
"children": [
{
"name": "Nestle", "tag":"company",
"children": [
{"name": "BarOne", "tag":"product"}
]
}
]
},
{
"name": "Milk", "tag":"subclass",
"children": [
{
"name": "Nestle", "tag":"company",
"children": [
{"name": "Nestle Milk", "tag":"product"}
]
}, {
"name": "Cadbury", "tag":"company",
"children": [
{"name": "Dairy Milk", "tag":"product"}
]
}
]
}
]
};
现在的问题是我希望 javascript 从本地位置读取这个 csv 文件。但是如何将 CSV 文件读入 JAVASCRIPT 中如此复杂的维度数组?
【问题讨论】:
-
"为了手动阅读,这是已经完成的操作jsfiddle.net/5Lv8gkqv" 放入相关代码(并且仅相关代码) 在问题中,不要只是链接。这是 SO 问答的基础之一。
-
重点在于相关代码。甚至您的链接也包含许多不相关的 d3 代码。
-
首先,我很确定 Javascript 不能出于任何原因访问本地文件,因为这似乎是一个巨大的安全风险。其次,您必须从服务器端元素中获取 CSV 字符串并将其传递给您的 javascript。第三,您必须创建一个函数来手动将数据解析为一个对象。
-
大家好。 @Sirko Ive 添加了相关的 JS 代码。请看看和帮助
-
@rzach 每种服务器端语言都可以读取 CSV,例如:w3schools.com/php/func_filesystem_fgetcsv.asp,从那里我会通过 AJAX 将 JSON 格式的数据发送到您的脚本,一旦它到达客户端,您的代码似乎是可以显示它。 PS:我建议用您要使用的服务器端语言标记这个问题。
标签: javascript php arrays csv d3.js