从服务器读取CSV并将内容放入html或javascript格式的下拉列表中
我的服务器上有一个csv文件(使用Apache2),我想在加载网页时“读取”。在阅读内容(两列以逗号分隔)之后,我希望其中一列是下拉列表的显示内容,另一列是“数据”内容。例如,如果我有一个csv,其中第一行是[1,“me”],我希望“me”显示给用户,1是我可以理解的数据(选定值) 我对javascripting和html知之甚少(仍在学习中),因此非常感谢任何简单的帮助从服务器读取CSV并将内容放入html或javascript格式的下拉列表中,javascript,jquery,html,csv,drop-down-menu,Javascript,Jquery,Html,Csv,Drop Down Menu,我的服务器上有一个csv文件(使用Apache2),我想在加载网页时“读取”。在阅读内容(两列以逗号分隔)之后,我希望其中一列是下拉列表的显示内容,另一列是“数据”内容。例如,如果我有一个csv,其中第一行是[1,“me”],我希望“me”显示给用户,1是我可以理解的数据(选定值) 我对javascripting和html知之甚少(仍在学习中),因此非常感谢任何简单的帮助 如何从我的服务器上读取CSV文件(目前正在使用localhost) 如何解析此CSV文件并将每一行添加为下拉列表的条目 谢谢
$.get(csv_path, function(data) {
var csv_string = data;
//Do stuff with the CSV data ...
});
for
循环和一些jQuery来实现:
(function() {
var csv_path = "data/sample.csv",
var renderCSVDropdown = function(csv) {
var dropdown = $('select#my-dropdown');
for(var i = 0; i < csv.length; i++) {
var record = csv[i];
var entry = $('<option>').attr('value', record.someProperty);
dropdown.append(entry);
}
};
$.get(csv_path, function(data) {
var csv = CSVToArray(data);
renderCSVDropdown(csv);
});
}());
(函数(){
var csv_path=“data/sample.csv”,
var renderCSVDropdown=函数(csv){
var dropdown=$('select#my dropdown');
对于(变量i=0;i
请注意,此代码调用了一个
CSVToArray
方法,您还必须在代码中定义该方法。感谢Ben Nadel,可以在这里找到一个实现:我可以让控制台显示RECORD对象,下拉列表似乎充满了空行,但RECORD.someProperty是什么?这应该是一个列名吗对于CSV或其他我应该交换的对象名称,我建议在浏览器的DevTool中创建
节点的行上设置一个断点,并使用DevTool的控制台或监视窗口显示记录的结构(这将特定于CSV文件)。这是一个正在工作的JSFIDLE。控制台记录记录记录对象,但似乎无法通过CSV中的列名获取任何信息:如果设置断点(或检查控制台中记录的数据),您会注意到CSV文件的第一行实际上列出了CSV文件的列名。您可以处理CSV[0]
作为列列表,而csv[1…n]
作为实际数据行。一个简单的算法可以将行的值列表转换为一个字典(map)对象,您可以使用列名将其索引。工作小提琴: