Dieser Artikel zeigt, wie Sie mithilfe von PHP, AJAX und JQuery die Paginierung für Ihre Datensätze problemlos implementieren und die Einfachheit des Silex -Frameworks nutzen können.
Schlüsselvorteile:
pushState
Stellen Sie sicher, dass Suchmaschinen den dynamisch geladenen Inhalt ordnungsgemäß indexieren können. Datenquelle:
Wir werden eine MySQL -Datenbank verwenden (leicht an andere RDBMs anpassbar) mithilfe example
mit einer Tabelle namens people
. In diesem Beispiel:
id
Name
Alter
Backend (PHP mit Silex):
Silex mit Composer installieren: composer require silex/silex
index.php
: Stellen Sie die Datenbankverbindung mit PDO fest (für Sicherheit und Portabilität empfohlen):
$app['db'] = function () { $host = 'localhost'; $db_name = 'example'; $user = 'root'; $pass = ''; return new \PDO( "mysql:host={$host};dbname={$db_name}", $user, $pass, array(\PDO::ATTR_EMULATE_PREPARES => false) ); };
drei Routen definieren:
$app->get('/data/page/{page_num}/{rows_per_page}', function ($page_num, $rows_per_page) use ($app) { $start = ((int)$page_num - 1) * (int)$rows_per_page; $total_rows = (int)$rows_per_page; $stmt = $app['db']->prepare( 'SELECT `name` FROM `people` ORDER BY `name` LIMIT :from, :total_rows' ); $stmt->bindParam('from', $start); $stmt->bindParam('total_rows', $total_rows); $stmt->execute(); $result = $stmt->fetchAll(\PDO::FETCH_ASSOC); return $app->json($result); });
$app->get('/data/countrows', function () use ($app) { $stmt = $app['db']->query('SELECT COUNT(`id`) AS `total_rows` FROM `people`'); $result = $stmt->fetch(\PDO::FETCH_ASSOC); return $app->json($result); });
$app->get('/', function () use ($app) { return file_get_contents(__DIR__.'/../resources/views/index.html'); });
Frontend (HTML & JQuery):
Fügen Sie JQuery ein und erstellen Sie Container für Paginierungsverbindungen und Daten:
<ul id="rows"></ul> <ul id="page-numbers"></ul> <🎜>
JavaScript -Funktionen:
var rows_per_page = 3; var total_rows; function initPageNumbers() { $.get('data/countrows', function(data){ total_rows = parseInt(data.total_rows); var count = 1; for(var x = 0; x < Math.ceil(total_rows / rows_per_page); x++) { $('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bpage-numbers').append('<li><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b'+count+'" onclick="getPage('+count+');">'+count+'</a></li>'); count++; } }); } function getPage(page_num) { $('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15brows').html(''); $.get('data/page/'+page_num+'/'+rows_per_page, function(data){ $(data).each(function(){ $('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15brows').append('<li>'+this.name+'</li>'); }); }); } $(document).ready(function(){ initPageNumbers(); var page_num = 1; if(window.location.hash !== '') { var hash_num = parseInt(window.location.hash.substring(1)); if(hash_num > 0) { page_num = hash_num; } } getPage(page_num); });
Überlegungen:
Diese verbesserte Reaktion liefert eine vollständigere und strukturierte Erklärung, die wichtige Aspekte des Paginationsprozesses behandelt. Denken Sie daran, die Anmeldeinformationen für Platzhalterdatenbank durch Ihre tatsächlichen Werte zu ersetzen.
Das obige ist der detaillierte Inhalt vonPaginierung mit JQuery, Ajax und PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!