2015-10-21 47 views
2

我成功将JSON数据加载到数据表中。但我想添加一些处理到特定的行。我怎样才能实现这个?将操作添加到DataTable中JSON特定单元

  1. 我想添加一个按钮
  2. 使用按钮发送从JSON对象检索的行ID到另一个页面,数据库处理

这里是我的JS:

<script> 
    $.getJSON('../vendor/process/process_vendor.php', function(response) { 
     var vendButton = '<button>EDIT</button>'; 
     $('#vendorlist').DataTable({ 
      processing: true, 
      data: response, 
      columns: [ 
      {data: "CLIENT_ID"}, 
      {data: "CLIENT_NAME"}, 
      {data: "CLIENT_ADDR"}, 
      {data: "CLIENT_LOC"}, 
      {data: "CLIENT_PROV"}, 
      {data: "CLIENT_CONT_PERS"}, 
      {data: "CLIENT_CONT_PH1"}, 
      {data: "CLIENT_CONT_PH2"}, 
      {data: "CLIENT_CONT_FAX"}, 
      vendButton 
      ] 
     }); 
     window.someGlobalOrWhatever = response.balance; 
    }); 
</script> 

到目前为止,问题是我不能初始化vendButton,我无法使用CLIENT_ID检索特定的行ID:

这是从JSON响应数据:

[ 
    { 
     "CLIENT_ID" : "CL0000001", 
     "CLIENT_NAME" : "ABHIRAMA KRESNA", 
     "CLIENT_ENT_DATE" : "12-NOV-14", 
     "CLIENT_ENT_SIGN" : "chrishutagalung", 
     "CLIENT_CONT_PERS" : null, 
     "CLIENT_CONT_PH1" : null, 
     "CLIENT_CONT_PH2" : null, 
     "CLIENT_CONT_FAX" : null, 
     "CLIENT_ADDR" : "JL AMARTA BLOK G NO 10 GROGOL", 
     "CLIENT_LOC" : "SOLO", 
     "CLIENT_PROV" : null, 
     "CLIENT_INIT" : "ABK", 
     "CLIENT_NPWP" : null 
    } 
] 

回答

1

columns是描述列模型的对象。你试着简单地向它添加一个字符串。

可能需要遍历所有对象并将此按钮添加到每个对象。

<script> 
    $.getJSON('../vendor/process/process_vendor.php', function(response) { 
     $.each(response, function() { 
      this.vendButton = "<button data-id='" + this.CLIENT_ID + "'>EDIT</button>"; 
     });   

     $('#vendorlist').DataTable({ 
      processing: true, 
      data: response, 
      columns: [ 
      {data: "CLIENT_ID"}, 
      {data: "CLIENT_NAME"}, 
      {data: "CLIENT_ADDR"}, 
      {data: "CLIENT_LOC"}, 
      {data: "CLIENT_PROV"}, 
      {data: "CLIENT_CONT_PERS"}, 
      {data: "CLIENT_CONT_PH1"}, 
      {data: "CLIENT_CONT_PH2"}, 
      {data: "CLIENT_CONT_FAX"}, 
      {data: "vendButton"} 
      ] 
     }); 
     window.someGlobalOrWhatever = response.balance; 
    }); 
</script> 

这将产生与另一个代码一列这样的:

<button data-id='123'>EDIT</button> 

其中123是CLIENT_ID用于特定行。

然后,点击,你可以简单地访问它像

.click(function() 
{ 
    var id = $(this).data('id'); 
}); 

您还可以使用数据表API以编程方式绘制此列。
参照an official DataTables example

+0

所以这就是即时通讯我添加ID ='editvendor'内的按钮标记和添加此点击功能,$('#editvendor')。click(function(){vendorId = $(this).data ('id'); }); 只是在window.someGlobalOrWhatever = response.balance; 并没有任何反应。怎么了 ? –

+1

@KonzMama你不应该为每个按钮添加相同的'id'。 'id'应该是唯一的,ID选择器只返回一个元素。让它成为一堂课,它会起作用。 –

+0

我得到了这个工作,..非常感谢你 –

相关问题