Пэкинг не работает при добавлении AJAX

У меня есть система разбиения на страницы на основе 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&raquo;&raquo;</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'>&laquo;&laquo;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 включен).

Чтобы сделать это, вы должны сделать следующее:

  1. Поместите код, который генерирует ваш список, в функцию, например generateList($page)
  2. На вашей php-странице выведите результаты указанной выше функции в качестве исходного.
  3. Создайте страницу ajax_actions.php, которая может вызвать функцию, созданную на шаге 1, и вернуть результат.
  4. Используйте ссылку на ссылку для вызова (через AJAX) страницу ajax_actions.php и покажите результат. Вероятно, вам нужно будет проанализировать идентификатор страницы из вашей ссылки и передать ее.

Если вы это сделаете, когда JS отключен, PHP будет обрабатывать разбиение на страницы. Когда JS включен, вы будете делать ev.preventDefault () и используйте AJAX для отображения содержимого.

Надеюсь, это поможет.

Ajax НЕ будет работать, если JavaScript не поддерживается браузером. Ajax означает асинхронный JavaScript и XML.

Итак, теперь вы все еще хотите поддержать Ajax?

Если да, то подтвердите следующее:

  1. Является ли «временным контейнер, который имеет списки и разбиение на страницы?»

  2. В результате получается заданный URL ($ (this) .attr ('href'))? Он должен возвращать надлежащий HTml, не имеющий документов и тегов тела и т. Д.

  3. Вы проверили свою консоль ошибок JavaScript и есть ли там какая-нибудь ошибка?

Вместо загрузки вы можете использовать метод ajax, который предоставляет функцию обработки ошибок с сервера, вы можете увидеть, возвращает ли сервер какую-либо ошибку.