ajax pagination pushState

283
02 мая 2017, 08:08

Пытаюсь использовать постраничную навигацию с использованием History API, Ajax и плагина SimplePagination, но вот как правильней будет, у меня не получается, при первом нажатии всё работает, а при втором страница выполняет обычный запрос уже не с помощью ajax, может здесь что то не хватает или что то не правильно прошу помогите.

<?php
// Подключение к БД
include("dbconfig.php");
$limit = 3;  
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };  
$start_from = ($page-1) * $limit;  
$sql = "SELECT COUNT(id) FROM content_wot_ru";  
$rs_result = mysqli_query($dbconfig, $sql);  
$row = mysqli_fetch_row($rs_result);  
$total_records = $row[0];  
$total_pages = ceil($total_records / $limit);  
$pagLink = "<nav><ul id='main-pagination'>";  
for ($i=1; $i<=$total_pages; $i++) {  
             $pagLink .= "<li><a href='index.php?id=".$i."'>".$i."</a></li>";  
};
echo $pagLink . "</ul></nav>";  
?>
    <script type="text/javascript">
    $(document).ready(function() {
        $('#main-pagination').pagination({
            items: <?php echo $total_records;?>,
            itemsOnPage: <?php echo $limit;?>,
            cssStyle: 'dark-theme',
            currentPage: <?php echo $page;?>,
            hrefTextPrefix: 'index.php?id='
        });
    });
    </script>
    <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>
READ ALSO
Шорткод с аттрибутами, в которых есть пробел

Шорткод с аттрибутами, в которых есть пробел

По умолчанию wordpress разбивает параметры шорткода по пробелу, те

224
Как отправить данные из QLineEdit в БД по нажатию кнопки в Qt?

Как отправить данные из QLineEdit в БД по нажатию кнопки в Qt?

Есть программа, в которой три поля QLineEdit, в них пользователь записывает некую информацию

233
Не работает FindFirstFileA в WinApi в потоках

Не работает FindFirstFileA в WinApi в потоках

Поиск файлов по маске в каталогах, количество потоков меньше каталогов в 2 раза

273