DataTables Плагин работа с сервером, как рендерить кнопку?

199
19 апреля 2022, 16:00

HTML:

<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
                    <thead>
                      <tr>
                        <th>ID</th>
                        <th>Логин</th>
                        <th>Email</th>
                        <th>Имя</th>
                        <th>Фамилия</th>
                        <th>Баланс</th>
                        <th>Управление</th>
                      </tr>
                    </thead>
                    <tfoot>
                      <tr>
                        <th>ID</th>
                        <th>Логин</th>
                        <th>Email</th>
                        <th>Имя</th>
                        <th>Фамилия</th>
                        <th>Баланс</th>
                        <th>Управление</th>
                      </tr>
                    </tfoot>
                    <tbody>
                    </tbody>
                  </table>

JQuery:

 $('#dataTable').DataTable({
        "processing": true,
        "serverSide": true,
        "ajax": $.fn.dataTable.pipeline({
          url: 'index.php',
          pages: 4 // number of pages to cache
        })
      });

PHP:

<?php
 
// DB table to use
$table = 'users';
 
// Table's primary key
$primaryKey = 'id';
 
$columns = array(
    array( 'db' => 'id', 'dt' => 0),
    array( 'db' => 'login', 'dt' => 1 ),
    array( 'db' => 'email',  'dt' => 2 ),
    array( 'db' => 'name', 'dt' => 3),
    array( 'db' => 'surname', 'dt' => 4 ),
    array( 'db' => 'balance',  'dt' => 5 )
);
 
// SQL server connection information
$sql_details = array(
    'user' => '',
    'pass' => '',
    'db'   => '',
    'host' => ''
);
 
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP
 * server-side, there is no need to edit below this line.
 */
 
require( 'ssp.class.php' );
 
echo json_encode(
    SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

Все данные берутся с сервера - здесь все хорошо, но у меня есть столбец "Управление" и туда я хочу добавить кнопку, которая будет делать редирект на url с параметрами GET ?id=id с бд, как мне это сделать?

Answer 1

Нашел решение:

const table = $('#dataTable').DataTable({
        "processing": true,
        "serverSide": true,
        "ajax": $.fn.dataTable.pipeline({
          url: 'index.php',
          pages: 4 // number of pages to cache
        }),
        "columnDefs": [{
          "targets": -1,
          "data": null,
          "defaultContent": `<button type="button" class="btn btn-primary" id="link">Link</button>`
        }]
      });
$('#dataTable tbody').on('click', '#link', function () {
  const data = table.row($(this).parents('tr')).data();
  window.location.href = `link.php?id=${data[0]}`;
});
READ ALSO
inputmask isComplete all class

inputmask isComplete all class

Подскажите пожалуйста, как я могу сделать проверку на заполненость всех полей которые имеют одинаковый класс с помощью плагина inputmask? Сейчас...

172
Почему не отправляются данные в ajax запросе?

Почему не отправляются данные в ajax запросе?

Написал ajax запрос для тестирования бэкаПри отправке запроса передаются только заголовки

176
Обращение к элементу в JavaScript

Обращение к элементу в JavaScript

В jQuery обращение к элементу происходит с помощью $('#id')onEventName()= {} или $('

258