JQuery Datatables: как получить row.data при нажатии кнопки в одном столбце?

99
8

[! [введите описание изображения здесь] [1]] [1] У меня есть вложенная таблица, я хочу иметь кнопку для генерации данных строки в info.php методом post (выглядит как info.php? user = data [0 ] & key2 = data 2) в одном столбце для каждой строки, у меня есть одна кнопка, но мне нужна одна кнопка и выполнение некоторых MySql, когда они нажимаются, чтобы получить данные строки. при нажатии кнопки вы попадаете в каждый столбец данных в строке и отправляете эти данные в info.php и просматриваете в всплывающем окне,

Как я могу выполнить вывод данных строки в вложенном datatable на другой php с помощью кнопки?

мой код

нажмите кнопку, не можете получить данные строки?

$('#example tbody').on( 'click', 'button', function () {
var index = $(this).closest('tr').index();
var data = table.row( $(this).parents('tr') ).data();
alert("References is "+ data[0] +"and section is "+ data[ 1 ]+ " and Stature Titles is "+data[2] );
} );

спросил(а) 2016-10-24T18:18:00+03:00 3 года, 2 месяца назад
1
Решение
47

-UPDATED
просто добавьте класс для кнопки class= 'button-info'

 columns:[ 
{ data:'name' },
{ data:'position' },
{ data:'salary' },
{
"targets": -1,
"data": null,
"defaultContent": "<button class='button-info'>Click Me!</button>"
}
]

сначала присвойте значение индекса для каждой родительской строки

$("table tbody tr").each(function(index) {
$(this).attr('index', index);
})

затем добавьте новое событие для события click этой кнопки и получите индекс родительского tr, просто получите индекс вашей выбранной родительской строки, используя добавленный выше атрибут данных "index"

 var parent = $(this).closest('table').parents('tr').index();
var parentIndex = $('tbody tr:nth-child('+(parent)+')').attr('index');

и получить текущую строку во вложенных данных

var index = $(this).closest('tr').index();

так что это окончательный

$('table').on( 'click', 'td .button-info', function () {
var parent = $(this).closest('table').parents('tr').index();
var parentIndex = $('tbody tr:nth-child('+(parent)+')').attr('index');
var currentIndex = $(this).closest('tr').index();
var data = sections[parentIndex][currentIndex];
console.log(data);
return;
window.open("/info.php?name=" + data.name + "&sal=" + data.salary);
} );

См. Обновленную версию JSFiddle

ответил(а) 2016-10-25T05:02:00+03:00 3 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема