当我单击对应于该行的按钮时,我想在DataTables中获取一行的值,但是当使用此代码时,我却未定义:
按钮的添加方式如下:
function getdata()
{
$pdrs = Pdrs::select('ID_Piece', 'Designation', 'Status');
$result = DataTables::of($pdrs)
...
->addColumn('action', function($pdr){
return '<a href="#" class="btn btn-xs btn-primary Ajouter_au_panier" id="'.$pdr->ID_Piece.'"><i class="glyphicon glyphicon-shopping-cart"></i> Ajouter au panier</a>';})
->make(true);
return $result ;
}
触发器是:
$(document).on('click', '.Ajouter_au_panier', function(){
var table = $('#pdr_table').DataTable();
console.log( table.row( this ).data() );
});
答案 0 :(得分:3)
如果将触发器放在单元格内的<a>
标签中,则需要引用父单元格而不是<a>
。
$(document).on('click', '.Ajouter_au_panier', function(e){
var table = $('#pdr_table').DataTable();
console.log( table.row( $(this).closest("td") ).data() );
});
更新/编辑::要获取特定列的内容,请使用cells()
函数,将行和列用作对象中的参数。即对于第2列:
$(document).on('click', '.Ajouter_au_panier', function(e){
var table = $('#pdr_table').DataTable();
var rowId = table.row( $(this).closest("td") ).index();
console.log( table.cells({ row: rowId, column: 2 }).data()[0] );
});
更新2 /已编辑::如果要获取单击链接的同一列的内容,可以这样做:
$(document).on('click', '.Ajouter_au_panier', function(e){
var table = $('#pdr_table').DataTable();
var rowId = table.row( $(this).closest("td") ).index();
var colId = table.column( $(this).closest("td") ).index();
console.log( table.cells({ row: rowId, column: colId }).data()[0] );
});