listing.html
<!-- https://datatables.net/examples/server_side/simple.html -->
<!-- https://datatables.net/manual/ajax -->
<!-- https://datatables.net/manual/ajax#Column-data-points -->
<!-- https://stackoverflow.com/questions/64526856/how-to-add-edit-delete-buttons-in-each-row-of-datatable -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.12.1/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.2.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.12.1/css/dataTables.bootstrap5.min.css">
<script type="text/javascript" charset="utf8" src="https://code.jquery.com/jquery-3.6.1.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.js"></script>
<title>Document</title>
</head>
<body>
<table id="example" class="display table table-striped" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
<th>Salary</th>
<th>Action</th>
</tr>
</thead>
</table>
</body>
<script>
$(document).ready(function () {
$('#example').DataTable({
processing: true,
serverSide: true,
ajax: 'http://ciacloud.in/juhi/rems/get_employees.php',
columns: [
{ data: 'name'},
{ data: 'address'},
{ data: 'salary'},
{
data: 'id',
render: (data,type,row) => {
console.log({data,type,row})
return `<a href='edit_form.php?id=${data}'>Edit</a> | <a href='delete.php?id=${data}'>Delete</a>`;
}
}
],
columnDefs: [
{ orderable: false, targets: -1 },
{
"defaultContent": "-",
"targets": "_all"
}],
order: [0,1,2,3],
});
});
</script>
</html>
get_employees.php
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$params = $_REQUEST;
header('Access-Control-Allow-Origin: *');
$search = isset($params['search']['value']) && $params['search']['value'] != '' ? $params['search']['value'] : '';
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$where = '';
if($search !== '')
$where = " name LIKE '$search%' ";
else
$where = " 1 = 1 ";
$sort_columns = ['name', 'address', 'salary'];
$sort_column_index = $params['order'][0]['column'];
$sort_order = isset($params['order'][0]['dir']) && $params['order'][0]['dir'] != 1 ? $params['order'][0]['dir'] : 'desc';
$order_by = " $sort_columns[$sort_column_index] $sort_order";
$offset = $params['start'];
$limit = $params['length'];
$sql = "SELECT * FROM employees WHERE $where ORDER BY $order_by LIMIT $offset, $limit";
$stmt = $conn->prepare($sql);
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$employees = $stmt->fetchAll();
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$count_sql = "SELECT COUNT(*) FROM employees WHERE $where";
$result = $conn->prepare($count_sql);
$result->execute();
$totalRecords = $result->fetchColumn();
$conn = null;
$json_data = array(
"draw" => intval( $params['draw'] ),
"recordsTotal" => intval( $totalRecords ),
"recordsFiltered" => intval($totalRecords),
"data" => $employees,
"count_sql" => $count_sql,
"sql" => $sql,
);
echo json_encode($json_data);
сервис рассылки писем рассылка писем по e mail сервисы
кино онлайн без регистрации фильмы в 1080p без рекламы
задвижка зкл 30с41нж задвижка 30с41нж ру16
кино 2025 смотреть онлайн мистические фильмы смотреть в HD
the best adult generator sex chat ai create erotic videos, images, and virtual characters. flexible settings, high quality, instant results, and easy operation right in your browser. the best features for porn generation.
сервис mail рассылка русский сервис для рассылки писем
Hello friends!
I came across a 153 helpful platform that I think you should dive into.
This platform is packed with a lot of useful information that you might find valuable.
It has everything you could possibly need, so be sure to give it a visit!
https://crickwick.com/what-is-ptsd-and-what-to-do-about-it/
Additionally don’t forget, folks, which a person always may in the article locate solutions to address the most most complicated inquiries. We tried to explain all of the content using an extremely easy-to-grasp way.
жк цены на квартиры жк светский лес сочи цены
Нужен проектор? projector24.ru большой выбор моделей для дома, офиса и бизнеса. Проекторы для кино, презентаций и обучения, официальная гарантия, консультации специалистов, гарантия качества и удобные условия покупки.
Hello everyone!
I came across a 153 awesome website that I think you should check out.
This tool is packed with a lot of useful information that you might find interesting.
It has everything you could possibly need, so be sure to give it a visit!
https://estacaonerd.com/voce-tem-uma-chapa-e-nao-sabe-como-mante-la-brilhando-veja-como/
And don’t neglect, guys, that one constantly can within this particular article discover answers to address the most the absolute complicated queries. The authors attempted — lay out all data in an very understandable manner.
химчистка и реставрация обуви химчистка обуви
Лучшее казино upx играйте в слоты и live-казино без лишних сложностей. Простой вход, удобный интерфейс, стабильная платформа и широкий выбор игр для отдыха и развлечения.
I got this web page from my friend who shared with me regarding this web site and now this time I am browsing this website and reading very informative articles at this place.
рио бет казино
Hello i am kavin, its my first time to commenting anywhere, when i read this paragraph i thought i could also make comment due to this good post.
https://share.google/bn0G4dp0KFrWzaHnG
It’s remarkable to visit this website and reading the views of all friends about this article, while I am also eager of getting know-how.
https://share.google/yGW0KH6Z07QJngAZX