微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 json 添加到 tabledit 选择参数

如何解决将 json 添加到 tabledit 选择参数

我正在使用 jquery tabledit 插件,我需要使用来自 URL 的 JSON 来提供 tabledit 的选择。 我有来自远程 URL (getpsp.PHP) 的 JSON,如下所示:

$('#pspmap').on('draw.dt',function() {
     $.ajax({
       url: 'ajax/getpsp.PHP',type: 'GET',dataType: 'html',success: function(data,status,xhr)
       {
          var jsonstring = JSON.stringify(data);
         
       },error: function(xhr,error)
       {
           
           alert("error");
       }
   });
    
      $('#pspmap').tabledit({
          url: 'ajax/action.PHP',dataType: 'json',columns: {
              identifier: [0,'id'],editable: [
                 [2,'color',jsonstring]
                ]},deleteButton: false,hideIdentifier: true,restoreButton: false,onSuccess: function(data,textStatus,jqXHR) {
              if (data.action == 'delete') {
                  $('#' + data.id).remove();
                  $('#pspmap').DataTable().ajax.reload();
              }
          }
      });
  });

我的 JS 代码如下:

editable: [ [3,'avatar','{"1": "Black Widow","2": "Captain America","3": "Iron Man"}']]

我怀疑 JSON 字符串化不正确,它应该如下所示: (根据tabledit网站上的例子)

@staticmethod
def pandas_to_array_big(data,comp):

    array = np.array(
            [
                np.transpose(np.array(data[['EURCHF_Open','EURCHF_High','EURCHF_Low','EURCHF_Close']])),np.transpose(np.array(data[['EURGBP_Open','EURGBP_High','EURGBP_Low','EURGBP_Close']])),np.transpose(np.array(data[['EURJPY_Open','EURJPY_High','EURJPY_Low','EURJPY_Close']])),np.transpose(np.array(data[['EURNZD_Open','EURNZD_High','EURNZD_Low','EURNZD_Close']])),np.transpose(np.array(data[['EURUSD_Open','EURUSD_High','EURUSD_Low','EURUSD_Close']])),np.transpose(np.array(data[['EURAUD_Open','EURAUD_High','EURAUD_Low','EURAUD_Close']])),np.transpose(np.array(data[['EURCAD_Open','EURCAD_High','EURCAD_Low','EURCAD_Close']])),np.transpose(np.array(data[['GBPAUD_Open','GBPAUD_High','GBPAUD_Low',np.transpose(np.array(data[['GBPCHF_Open','GBPCHF_High','GBPCHF_Low',np.transpose(np.array(data[['GBPJPY_Open','GBPJPY_High','GBPJPY_Low',np.transpose(np.array(data[['GBPCAD_Open','GBPCAD_High','GBPCAD_Low',np.transpose(np.array(data[['GBPUSD_Open','GBPUSD_High','GBPUSD_Low',np.transpose(np.array(data[['GBPNZD_Open','GBPNZD_High','GBPNZD_Low',np.transpose(np.array(data[['USDCHF_Open','USDCHF_High','USDCHF_Low',np.transpose(np.array(data[['USDJPY_Open','USDJPY_High','USDJPY_Low',np.transpose(np.array(data[['AUDUSD_Open','AUDUSD_High','AUDUSD_Low',np.transpose(np.array(data[['NZDUSD_Open','NZDUSD_High','NZDUSD_Low',np.transpose(np.array(data[['USDCAD_Open','USDCAD_High','USDCAD_Low',np.transpose(np.array(data[['AUDJPY_Open','AUDJPY_High','AUDJPY_Low',np.transpose(np.array(data[['CADJPY_Open','CADJPY_High','CADJPY_Low',np.transpose(np.array(data[['CHFJPY_Open','CHFJPY_High','CHFJPY_Low',np.transpose(np.array(data[['NZDJPY_Open','NZDJPY_High','NZDJPY_Low',np.transpose(np.array(data[['AUDCHF_Open','AUDCHF_High','AUDCHF_Low',np.transpose(np.array(data[['CADCHF_Open','CADCHF_High','CADCHF_Low',np.transpose(np.array(data[['NZDCHF_Open','NZDCHF_High','NZDCHF_Low',np.transpose(np.array(data[['AUDNZD_Open','AUDNZD_High','AUDNZD_Low',np.transpose(np.array(data[['NZDCAD_Open','NZDCAD_High','NZDCAD_Low',np.transpose(np.array(data[['AUDCAD_Open','AUDCAD_Low','AUDCAD_Close']])),],dtype=np.float64)

    massive = np.array([
              [
               np.array_split(array[0][0],comp),np.array_split(array[0][1],np.array_split(array[0][2],np.array_split(array[0][3],comp)
              ],[
               np.array_split(array[1][0],np.array_split(array[1][1],np.array_split(array[1][2],np.array_split(array[1][3],[
               np.array_split(array[2][0],np.array_split(array[2][1],np.array_split(array[2][2],np.array_split(array[2][3],[
               np.array_split(array[3][0],np.array_split(array[3][1],np.array_split(array[3][2],np.array_split(array[3][3],[
               np.array_split(array[4][0],np.array_split(array[4][1],np.array_split(array[4][2],np.array_split(array[4][3],[
               np.array_split(array[5][0],np.array_split(array[5][1],np.array_split(array[5][2],np.array_split(array[5][3],[
               np.array_split(array[6][0],np.array_split(array[6][1],np.array_split(array[6][2],np.array_split(array[6][3],[
               np.array_split(array[7][0],np.array_split(array[7][1],np.array_split(array[7][2],np.array_split(array[7][3],[
               np.array_split(array[8][0],np.array_split(array[8][1],np.array_split(array[8][2],np.array_split(array[8][3],[
               np.array_split(array[9][0],np.array_split(array[9][1],np.array_split(array[9][2],np.array_split(array[9][3],[
               np.array_split(array[10][0],np.array_split(array[10][1],np.array_split(array[10][2],np.array_split(array[10][3],[
               np.array_split(array[11][0],np.array_split(array[11][1],np.array_split(array[11][2],np.array_split(array[11][3],[
               np.array_split(array[12][0],np.array_split(array[12][1],np.array_split(array[12][2],np.array_split(array[12][3],[
               np.array_split(array[13][0],np.array_split(array[13][1],np.array_split(array[13][2],np.array_split(array[13][3],[
               np.array_split(array[14][0],np.array_split(array[14][1],np.array_split(array[14][2],np.array_split(array[14][3],[
               np.array_split(array[15][0],np.array_split(array[15][1],np.array_split(array[15][2],np.array_split(array[15][3],[
               np.array_split(array[16][0],np.array_split(array[16][1],np.array_split(array[16][2],np.array_split(array[16][3],[
               np.array_split(array[17][0],np.array_split(array[17][1],np.array_split(array[17][2],np.array_split(array[17][3],[
               np.array_split(array[18][0],np.array_split(array[18][1],np.array_split(array[18][2],np.array_split(array[18][3],[
               np.array_split(array[19][0],np.array_split(array[19][1],np.array_split(array[19][2],np.array_split(array[19][3],[
               np.array_split(array[20][0],np.array_split(array[20][1],np.array_split(array[20][2],np.array_split(array[20][3],[
               np.array_split(array[21][0],np.array_split(array[21][1],np.array_split(array[21][2],np.array_split(array[21][3],[
               np.array_split(array[22][0],np.array_split(array[22][1],np.array_split(array[22][2],np.array_split(array[22][3],[
               np.array_split(array[23][0],np.array_split(array[23][1],np.array_split(array[23][2],np.array_split(array[23][3],[
               np.array_split(array[24][0],np.array_split(array[24][1],np.array_split(array[24][2],np.array_split(array[24][3],[
               np.array_split(array[25][0],np.array_split(array[25][1],np.array_split(array[25][2],np.array_split(array[25][3],[
               np.array_split(array[26][0],np.array_split(array[26][1],np.array_split(array[26][2],np.array_split(array[26][3],[
               np.array_split(array[27][0],np.array_split(array[27][1],np.array_split(array[27][2],np.array_split(array[27][3],comp)
              ]
    ])

    return massive

解决方法

您可以像这样将您的响应数据转换为可编辑的列下拉选项字符串

const options = [{"id":"2698","psp":"Paypal"},{"id":"2699","psp":"Unknown"},{"id":"2677","psp":"Stripe"},{"id":"2678","psp":"AmazonPay"}];

const result = options.reduce((acc,opt,index) => {
  acc[opt.id] = opt.psp;
  return acc;
},{})

console.log(JSON.stringify(result))

然后您可以在代码中集成与可重用功能相同的功能。

function getOptionsConfig(col,key,options) {
  const result = options.reduce((acc,index) => {
      acc[opt.id] = opt.psp;
      return acc;
    },{});
  return [col,JSON.stringify(result)];
}

$('#pspmap').on('draw.dt',function() {
     $.ajax({
       url: 'ajax/getpsp.php',type: 'GET',dataType: 'html',success: function(data,status,xhr) {
          $('#pspmap').Tabledit({
              url: 'ajax/action.php',dataType: 'json',columns: {
                  identifier: [0,'id'],editable: [ [2,'color',jsonstring],getOptionsConfig(3,'psp',data) ]},deleteButton: false,hideIdentifier: true,restoreButton: false,onSuccess: function(data,textStatus,jqXHR) {
                  if (data.action == 'delete') {
                      $('#' + data.id).remove();
                      $('#pspmap').DataTable().ajax.reload();
                  }
              }
          });
       },error: function(xhr,error) {
           alert("error");
       }
   });
  });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。