Dynamic php pagination ajax

234
21 апреля 2017, 22:04

Нужно к этому коду адаптировать pagination переключение с помощью ajax, вот пример и код:

layout.php:

   <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    </head>
    <body>

    <?php
// подключение к БД
    include("dbconfig.php");
// PAGINATION
    $rows=mysqli_num_rows(mysqli_query($dbconfig,"select * from table"));
    $total=ceil($rows/$limit);
    if($id>1)
    {
        echo "<li><a href='?id=".($id-1)."' class='button'>PREVIOUS</a></li>";
    }
    if($id!=$total)
    {
        echo "<li><a href='?id=".($id+1)."' class='button'>NEXT</a></li>";
    } 
            for($i=1;$i<=$total;$i++)
            {
                if($i==$id) { echo "<li class='current'>".$i."</li>"; }
                else { echo "<li><a href='?id=".$i."'>".$i."</a></li>"; }
            }
    ?>

   <!-- CONTENT (INDEX.PHP) -->
        <div id="content"><?php echo $content; ?></div>
        <script>
            $(document).ready(function() {
                $('a').click(function() {
                    var url = $(this).attr('href');
                    $.ajax({
                        // url уже может содержать параметры, так что проверяем,
                        // как нам добавлять ещё один параметр
                        url: url + (/\?/.test(url) ? '&':'?') + 'ajax=1',
                        success: function(data){
                            $('#content').html(data);
                        }
                    });
                    if(url != window.location){
                        window.history.pushState(null, null, url);
                    }
                    return false;
                });
                $(window).bind('popstate', function() {
                    $.ajax({
                        url: location.pathname + (/\?/.test(location.pathname) ? '&':'?') + 'ajax=1',
                        success: function(data) {
                            $('#content').html(data);
                        }
                    });
                });
            });
        </script>
    </body>
    </html>

index.php:

<?php
include("dbconfig.php");
$limit = 3;
$start = 0;
$content = '';
if(isset($_GET['id'])) {
    $id = intval($_GET['id']);
    $start = ($id-1) * $limit;
}
//* получаем данные и кладем их в $content
$query = mysqli_query($dbconfig, "SELECT * FROM table ORDER BY id DESC LIMIT $start, $limit");
while($row = mysqli_fetch_array($query)) {
    $content .= "<p>".$row['id']."</p>";
    $content .= "<p>".$row['title']."</p>";
    $content .= "<p>".$row['description']."</p>";
}
if(isset($_GET['ajax'])) {
    //* если запрос яаксом - возвращаем только данные
    echo $content;
} else {
    //* если обычный запрос - возвращаем всю HTML-страницу
    include_once 'layout.php';
}

а также добавить к этому ajax анимацию.

Если что здесь используется History Api

READ ALSO
Проблема с шаблоном главной страницы в WP

Проблема с шаблоном главной страницы в WP

Создал шаблон статической страницыПроверяю - PHP скрипты в ней отрабатывают

259
Работа с каталогами и файлами по символьной ссылке в PHP

Работа с каталогами и файлами по символьной ссылке в PHP

Имеется скрипт написанный на PHP 56 Имеется примонтированный к серверу на базе Debian 8 дополнительный диск, на котором лежат фотографии и xml файлы

388
Организовать обновление CMS

Организовать обновление CMS

Добрый деньПоявилась следующая задача: написать CMS для ~18 сайтов, и встал вопрос об обновлении версий CMS и добавлении новых модулей

215
добавление CSRF-токена в заголовок запроса

добавление CSRF-токена в заголовок запроса

Добрый день, раньше к crm (bpmonline) по протоколу OData выполняли запросы таким образом:

349