【发布时间】:2012-10-15 00:40:45
【问题描述】:
我有一个 php 脚本,它基本上只加载一个 csv:
echo json_encode(file(csvfile.csv, FILE_IGNORE_NEW_LINES));
输出是这样的:
["foo,bar,baz","foo, foo,bar","bla,bla,blubb"]
在我的基本 html 文件中,我以这种方式加载它:
$(document).ready(function(){
$.getJSON("curlcsvfetcher.php", function(data) {
$('#data').empty();
var columnseperator = "|";
var commentindicator = "#";
var textqualifier = '"'
filltable2(data,columnseperator,commentindicator,textqualifier); }
);
这适用于函数filltable(),但不适用于filltable2():
function filltable(data,columnseperator,commentindicator,textqualifier){
var table_obj = $('table');
$.each(data, function(index, item){
table_obj.append($('<tr id="'+item+'"><td>'+item+'</td></tr>'));
}).insertAfter('.table');
}
function filltable2(data,columnseperator,commentindicator,textqualifier){
var table_obj = $('table');
var trstart = '<tr>';
var trend = '</tr>';
$.each(data, function(index, item){
table_obj.append($('<tr id="'+item+'"><td>'+item+'</td></tr>'));
var columns = data.split(columnseperator);
var tddata = '';
for (var column in columns){
tddata = tddata +'<td>'+column+'</td>';
}
var rowdata = trstart + tddata + trend;
table_obj.append($(rowdata));
}).insertAfter('.table');
}
函数filltable() 生成一列三行的输出。
但现在我想分解(本例 3)列中的每一行。
函数filltable2()中的代码一定有问题,我不知道我做错了什么。
filltable2() 的输出只是表格中的一行。
非常感谢!
PS:这个问题与我的last question有关,但我认为基本问题无关,所以我创建了一个新问题
【问题讨论】:
-
愚蠢的问题,你在 CSV 中传递竖线作为分隔符,对吧?
-
仅供参考,gonzofish 和 Yogendra 都在代码中发现了一个缺陷。这两个问题都需要解决。
标签: javascript jquery split