我有一个PHP脚本,它通过以下方式基本上只加载一个csv:


  回声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有关,但我认为基本问题无关,所以我提出了一个新问题

最佳答案

我认为这是因为在分割线中,您给出了:

data.split(columnseperator);


当你的意思

item.split(columnseperator);


要么

data[index].split(columnseperator);

09-27 03:54