【问题标题】:tabulator dynamic columns from return ajax json来自返回 ajax json 的制表符动态列
【发布时间】:2021-02-23 20:07:05
【问题描述】:

我无法用来自 ajax 响应的 json 填充制表符。 json 键是给定月份的每一天,例如:

{data: [{"MON1": '7,56'}, {"TUE2": '4,33'}, {"WED3": '0,33'}, etc..]}

我用制表器完成的测试:

//first attempt, classic ajax way
$.ajax({
   url: 'test.php',
   type: 'post',
   dataType: 'json',
   data: {year: year, month: month},
   success: tableCB
});

//table callback
function tableCB(data){
   var table = new Tabulator('#tbl', {
      data: data,
      autoColumns: true
   });
}

这就是我得到的:

另一个测试:

//second attempt with tabulator ajax :
var table = new Tabulator('#tbl', {
    ajaxURL: 'test.php',
    ajaxParams: {year: year, month: month},
    ajaxConfig: 'post',
    ajaxResponse: function(url, params, response){
         return response.data;
    },
    autoColumns: true
});

结果如下:

我做错了什么?

谢谢

【问题讨论】:

  • 嗨,你的 json 数组有不同的键 MON1,Tue1..etc 这就是为什么它只显示第一个键。您需要使您的 json 数组像 {"key" : "Mon1" ," val" :"somevalue"} 一样,其中键和值将相同,只有 mon1somevalue 会改变。
  • 嗨。 key, value 不是制表符组件所期望的 json 格式。因此,在他们的文档中,json 格式是一个对象数组,例如:[{colName: val1, colName2, val2, colNameX, valX}]。
  • 是的 key 只是一个您可以更改的名称

标签: javascript php jquery tabulator


【解决方案1】:

实现一个 forEach

       $.ajax({
        type: 'POST',
        url: 'test.php',
        dataType: 'json',
        data: {year: year, month: month},
        success: function (data) {
           $.each(data, function(index, value) {
            console.log(value);
           });
        }
    });

【讨论】:

  • 不确定您的建议。制表符构造函数中的“每个”?
猜你喜欢
  • 2019-04-04
  • 2014-12-30
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
相关资源
最近更新 更多