создал ячейку, не сортирующую с данными - PullRequest
0 голосов
/ 02 октября 2018

Я использую таблицы данных плагина jQuery для отображения данных из базы данных MySQL.Код, который я использую для инициализации таблицы данных:

// Setup the broadcast datatable
var broadcasts = $('#table_broadcasts').DataTable({
  ajax: {
    url: "../assets/php/get_reports_broadcasts.php",
    dataSrc: ''
  },
  columns: [
    { data: 'date_approved', title: 'Date Sent' },
    { data: 'subject', title: 'Subject Line' },
    { data: 'name', title: 'Business(es) Approved', searchable: false, createdCell:
      function (td, cellData, rowData, row, col) {
        $(td).html('<a type="button" class="btn btn-primary text-white" data-toggle="modal" data-target="#modal_broadcasts">View Approved</a>');
      }
    }
  ]
});

Это работает, как и ожидалось, так как отображает все данные, кроме последнего столбца, вместо этого он отображает тег привязки, который в конечном итоге запускает модальный режим.Для чего стоит, вот код, который я использую при запуске модального режима:

$(document).on('click', '#table_broadcasts td a', function() {
  // Get the data at the clicked row
  var data = broadcasts.row($(this).closest('tr').index()).data();
  var subject = data.subject;
  var businesses = data.name;

  // Set the data in the modal
  $('#modal_broadcasts_subject').text(subject);
  $('#modal_broadcasts_businesses').html('<li>' + businesses + '</li>');
});

Проблема, с которой я сталкиваюсь, заключается в том, что данные для соответствующего якоря не сортируются с остальнымиданные.Под этим я подразумеваю, что при поступлении данных они сортируются по столбцу date_approved в порядке убывания, но таблицы данных автоматически возвращают столбец в порядке возрастания.Всякий раз, когда я нажимаю на якорь для первой строки, данные для последней строки отображаются в модальном режиме.

1 Ответ

0 голосов
/ 02 октября 2018

Я понял ошибку в моем коде.Удалив .index(), когда я получил строку, это решило проблему.то есть

var data = broadcasts.row($(this).closest('tr').index()).data(); // Old
var data = broadcasts.row($(this).closest('tr')).data(); // New
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...