php - 如何从 DataTables 行中获取值?
问题描述
当单击与该行对应的按钮时,我想在 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() );
});
解决方案
如果将触发器放在<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] );
});
推荐阅读
- r - R levenshtein 距离中的聚类
- aop - 如何在类中捕获构造函数的名称
- sql-server - 在一列短字符串中查找长字符串的一部分
- c# - Sublime Build System 在工作目录中找不到代码
- python - VSCode 文件在重复的工作区之间不同步
- xcode - SwiftUI 需要大量 RAM?
- python - 如何分隔接口名称
- python - 如何解决 apachestorm worker 崩溃问题
- ruby-on-rails - 如何在 Mongo + Rails 中插入许多?
- python - 使用pyinstaller时如何在python脚本中选择文件路径?