2015-10-21 30 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

我得到了這個工作,..非常感謝你 –

相關問題