У меня есть система разбиения на страницы на основе PHP, и она работает нормально, я использую параметры GET для передачи номера страницы:
<?php $db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR); $sql1 = "SELECT COUNT(*) FROM $table"; $result1 = mysql_query($sql1, $connection) or trigger_error("SQL", E_USER_ERROR); $row = mysql_fetch_row($result1); $numrows = $row[0]; $rowsperpage = 2; $totalpages = ceil($numrows / $rowsperpage); if (isset($_GET['page']) && is_numeric($_GET['page'])) { $currentpage = (int) $_GET['page']; } else { $currentpage = 1; } if ($currentpage > $totalpages) { $currentpage = $totalpages; } if ($currentpage < 1) { $currentpage = 1; } $offset = ($currentpage - 1) * $rowsperpage; $sql2 = "SELECT * FROM internet_security ORDER BY id DESC LIMIT $offset, $rowsperpage"; $result2 = mysql_query($sql2, $connection) or trigger_error("SQL", E_USER_ERROR); $list = mysql_fetch_assoc($result2); $startrow = ($currentpage-1) * $rowsperpage; ?>
и способ, которым я показываю ссылки, таков:
h3>Results <?php echo ($startrow+1) ?> - <?php echo min($startrow + $rowsperpage, $row) ?> of <?php echo ($totalpages *$rowsperpage) ?></h3> <ul><?php if ($currentpage!=$totalpages) { echo " <li><a href='{$_SERVER['PHP_SELF']}?page=$totalpages'>$totalpages</a></li> "; $nextpage = $currentpage + 1; echo " <li><a href='{$_SERVER['PHP_SELF']}?page=$nextpage'>Next»»</a></li> "; }?></ul> <ul><?php if($currentpage<$totalpages){ for ($x = ($currentpage - 3); $x < (($currentpage + 3) + 1); $x++) { if (($x > 0) && ($x <= $totalpages)) { if ($x == $currentpage) { echo " <li id='pcurrent'><a href='{$_SERVER['PHP_SELF']}?page=$x'>$x</a></li>"; } else { echo " <li><a href='{$_SERVER['PHP_SELF']}?page=$x'>$x</a></li> "; }}} } ?> </ul> <ul><?php if ($currentpage > 1){ $prevpage = $currentpage - 1; echo " <li><a href='{$_SERVER['PHP_SELF']}?page=$prevpage'>««Prev</a></li> "; echo "<li><a href='{$_SERVER['PHP_SELF']}?page=1'>1</a></li> "; }?></ul>
Эта разбивка на страницы работает нормально.
Мой вопрос: теперь я хочу добавить к нему функциональность AJAX, чтобы у меня была обе функциональность в разбивке на страницы, т. Е. Если JavaScript отключен, разбиение на страницы будет работать на PHP.
Я попробовал это:
$(function() { $('#pagination ul li a, .temp').click(function(ev) { ev.preventDefault(); $('#temporary').load($(this).attr('href')).modal(); }); });
Но теперь, разбиение на страницы не работает, и ничего не происходит, когда нажата ссылка на страницы. Что не так?
Похоже, есть некоторая путаница в том, что вы просите. Насколько я могу судить, вы хотите иметь разбиение на страницы в PHP (когда js отключено) и разбиение на страницы AJAX, чтобы использовать динамическую загрузку (когда js включен).
Чтобы сделать это, вы должны сделать следующее:
generateList($page)
Если вы это сделаете, когда JS отключен, PHP будет обрабатывать разбиение на страницы. Когда JS включен, вы будете делать ev.preventDefault () и используйте AJAX для отображения содержимого.
Надеюсь, это поможет.
Ajax НЕ будет работать, если JavaScript не поддерживается браузером. Ajax означает асинхронный JavaScript и XML.
Итак, теперь вы все еще хотите поддержать Ajax?
Если да, то подтвердите следующее:
Является ли «временным контейнер, который имеет списки и разбиение на страницы?»
В результате получается заданный URL ($ (this) .attr ('href'))? Он должен возвращать надлежащий HTml, не имеющий документов и тегов тела и т. Д.
Вы проверили свою консоль ошибок JavaScript и есть ли там какая-нибудь ошибка?
Вместо загрузки вы можете использовать метод ajax, который предоставляет функцию обработки ошибок с сервера, вы можете увидеть, возвращает ли сервер какую-либо ошибку.