我有一个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有关,但我认为基本问题是无关的,所以我创建了一个新问题
答案 0 :(得分:4)
我建议您更改for
循环:
for (var column in columns){
tddata = tddata +'<td>'+column+'</td>';
}
as:
for (var i= 0; i < columns.length; i++){
tddata = tddata +'<td>'+columns[i]+'</td>';
}
试试这种方式。如果它不起作用。请在循环之前提醒data
,并在循环之后提醒tddata
并分享。
答案 1 :(得分:3)
我认为这是因为在分割线中,你是在给它:
data.split(columnseperator);
当你的意思是
item.split(columnseperator);
或
data[index].split(columnseperator);