У меня есть скрипт Datatables, как показано ниже.Datatable работает нормально, но когда я нажимаю кнопку edit
, я получаю ошибку, подобную этой:
Uncaught TypeError: datatables.row не является функцией.
Как исправить код и получить идентификатор для кнопки редактирования?
let data_table = $('#categories_table');
let datatables = data_table.dataTable({
"processing": true,
"serverSide": true,
"order": [
[5, "asc"]
],
ajax: '/admin/categories/datatables',
columnDefs: [{
'targets': 0,
'searchable': false,
'orderable': false,
'render': function(data, type, full, meta) {
return '<input type="checkbox" class="form-check-input-styled-primary" name="ids[]" value="' +
$('<div/>').text(data).html() + '">';
}
}, {
targets: -1,
title: 'Actions',
orderable: false,
render: function(data, type, full, meta) {
return `<a href="#" title="Edit User" class="list-icons-item text-primary-600 edit">
<i class="icon-pencil7"></i>
</a>
<a href="#" title="Delete User" class="list-icons-item text-danger-600 delete">
<i class="icon-trash"> </i>
</a>`;
},
}]
});
datatables.on('click', '.edit', function(event) {
event.preventDefault();
var data = datatables.row($(this).closest('tr')).data();
let id = data[1];
let $edit_url = "/admin/categories/" + id + "/edit";
$.post($edit_url, {
id: id,
csrf_token: $csrf
}).done(function(data) {
update_modal.modal("show");
update_validator.resetForm();
$(".modal-title").text("Edit User");
update_modal.find("form")[0].reset();
$("#id").val(data.id);
$("#update_csrf").val($csrf);
$("#update_name").val(data.name);
$("#update_email").val(data.email);
$("#update_role").val(data.role);
$("#update_status").val(data.is_active);
});
});