まず、HTMLファイル内にテーブルと検索ボックスを作成します。
<div class="container">
<input type="text" id="searchInput" placeholder="検索キーワードを入力してください">
<table id="dataTable" class="table table-striped">
<thead>
<tr>
<th>カラム1</th>
<th>カラム2</th>
<th>カラム3</th>
<!-- 追加のカラムをここに追加 -->
</tr>
</thead>
<tbody>
<!-- テーブルの行とデータをここに追加 -->
</tbody>
</table>
<ul id="pagination" class="pagination"></ul>
</div>
次に、JavaScriptコードを追加してテーブルの検索とページネーション機能を実装します。
$(document).ready(function() {
// ダミーデータの配列(仮のデータとして使用)
var data = [
{ column1: 'データ1', column2: 'データA', column3: 'その他のデータ1' },
{ column1: 'データ2', column2: 'データB', column3: 'その他のデータ2' },
// 追加のデータをここに追加
];
// ページネーションの設定
var pageSize = 10; // 1ページに表示する行数
var currentPage = 1; // 現在のページ
// テーブルを初期化する関数
function initTable() {
// テーブルの内容をクリア
$('#dataTable tbody').empty();
// 現在のページに応じたデータを取得
var startIndex = (currentPage - 1) * pageSize;
var endIndex = startIndex + pageSize;
var pageData = data.slice(startIndex, endIndex);
// テーブルにデータを追加
$.each(pageData, function(index, item) {
var row = $('<tr>');
row.append($('<td>').text(item.column1));
row.append($('<td>').text(item.column2));
row.append($('<td>').text(item.column3));
// 追加のカラムがある場合はここに追加
$('#dataTable tbody').append(row);
});
}
// ページネーションを初期化する関数
function initPagination() {
// ページネーションのリンクをクリア
$('#pagination').empty();
// ページ数を計算
var pageCount = Math.ceil(data.length / pageSize);
// ページネーションのリンクを作成
for (var i = 1; i <= pageCount; i++) {
var link = $('<a>').text(i);
if (i === currentPage) {
link.addClass('active');
}
link.click(function() {
currentPage = parseInt($(this).text());
initTable();
initPagination();
});
var listItem = $('<li>').append(link);
$('#pagination').append(listItem);
}
}
// 検索ボックスの値が変更された時にテーブルを更新
$('#searchInput').on('input', function() {
var searchText = $(this).val().toLowerCase();
// 検索結果のデータを格納する配列var searchData = [];
// データを検索
$.each(data, function(index, item) {
// 検索条件に一致する場合は配列に追加
if (item.column1.toLowerCase().includes(searchText) ||
item.column2.toLowerCase().includes(searchText) ||
item.column3.toLowerCase().includes(searchText)) {
searchData.push(item);
}
});
// 検索結果を表示するためにデータを更新
currentPage = 1;
data = searchData;
// テーブルとページネーションを更新
initTable();
initPagination();
});
// 初期化を実行
initTable();
initPagination();
});
上記のコードは、ブートストラップのスタイルを持つ検索可能なページネーションテーブルを実装するための基本的な例です。データはダミーデータ(仮のデータ)として配列に格納され、検索ボックスの値に基づいてテーブルがフィルタリングされます。ページネーションは、指定されたページサイズに基づいてデータを分割し、ページ間のナビゲーションを提供します。