Как получить значения из строки DataTables? - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу получить значения строки в 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() );  
});

1 Ответ

0 голосов
/ 07 февраля 2019

Если вы поместите триггер в тег <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] );  
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...