У меня есть вызов Ajax для создания галереи изображений.Существует поле со списком для установки количества изображений на странице и нумерация страниц для навигации по страницам.Работает нормально, за исключением того, что если человек находится на последней странице и увеличивает количество изображений на странице, он перезагружается до номера текущей страницы.Это проблема, потому что теперь стало меньше страниц, и поэтому страница пуста.Другими словами, в итоге вы получите, например, page 7 of 5
.
Я считаю, что проблема в PHP, поскольку именно здесь вычисляется количество страниц.Я придумал заявление if
, чтобы справиться с этим:
if ($page > $no_of_paginations) {
$page = $no_of_paginations;
}
Однако я не знаю, где это разместить.Причина в том, что $page
необходимо определить до запроса mysql_, но $no_of_paginations
определяется после запроса.
Любые мысли о том, как я могу сделатьэтот функционал?
Я выложу соответствующий код ниже:
<?php
$page = 0;
if(isset($_GET['page'])){
$page = (int) $_GET['page'];
}
$cur_page = $page;
$page -= 1;
if((int) $_GET['imgs'] > 0){
$per_page = (int) $_GET['imgs'];
} else {
$per_page = 16;
}
$start = $per_page * $page;
include"db.php";
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` ".
"ORDER BY `imgDate` DESC LIMIT $start, $per_page";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
echo "<ul class='new_arrivals_gallery'>";
while($row = mysql_fetch_assoc($result_pag_data)) {
echo "<li><a target='_blank' href='new_arrivals_img/".$row['imgURL']."' class='gallery' title='".$row['imgTitle']."'><img src='new_arrivals_img/thumbnails/".$row['imgURL']."'></a></li>";
}
echo "</ul>";
/* --------------------------------------------- */
$query_pag_num = "SELECT COUNT(*) AS count FROM images";
$result_pag_num = mysql_query($query_pag_num);
$row = mysql_fetch_array($result_pag_num);
$count = $row['count'];
$no_of_paginations = ceil($count / $per_page);
?>
Спасибо за вашу помощь!