У меня есть Dynamic Dropdownlist и php pagination. Я хочу создать раскрывающийся список для номера страницы. Вместо того, чтобы иметь обычную разбивку на страницы (Prev 1-2-3 Next), я хочу, чтобы в раскрывающемся списке. Что-то вроде на страницах администратора, где выпадающее меню позволяет быстро перейти на нужную страницу.
Подобно этому в Phpmyadmin
И это моя правая строка кода
Первая страница
<script>
function showUser(str,ids) {
var $txtHint = $('#txtHint');
if (str=="" || ids=="") {
$txtHint.html('');
return;
}
$txtHint.load('app_list.php?q='+str+'&id='+ids)
}
</script>
SecondPage
$id = $mysqli->real_escape_string($_GET["q"]);
$id2 = $mysqli->real_escape_string($_GET["id"]);
if (isset($_GET['id'])) {
$id2 = preg_replace('#[^0-9]#i', '', $_GET['id']);
} else {
$id2 = 1;
}
$itemsPerPage = 100;
$lastPage = ceil($nr / $itemsPerPage);
if ($id2 < 1) {
$id2 = 1;
} else if ($id2 > $lastPage) {
$id2 = $lastPage;
}
$centerPages = "";
$sub1 = $id2 - 1;
$sub2 = $id2 - 2;
$add1 = $id2 + 1;
$add2 = $id2 + 2;
if ($id2 == 1) {
$centerPages .= ' <span class="pagNumActive">' . $id2 . '</span> ';
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add1 .'")>' . $add1 . '</a> ';
} else if ($id2 == $lastPage) {
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub1 .'")>' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $id2 . '</span> ';
} else if ($id2 > 2 && $id2 < ($lastPage - 1)) {
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub2 .'")>' . $sub2 . '</a> ';
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub1 .'")>' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $id2 . '</span> ';
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add1 .'")>' . $add1 . '</a> ';
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add2 .'")>' . $add2 . '</a> ';
} else if ($id2 > 1 && $id2 < $lastPage) {
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub1 .'")>' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $id2 . '</span> ';
$centerPages .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add1 .'")>' . $add1 . '</a> ';
}
$limit = 'LIMIT ' .($id2 - 1) * $itemsPerPage .',' .$itemsPerPage;
//query
$paginationDisplay = "";
if ($lastPage != "1"){
$paginationDisplay .= 'Page <strong>' . $id2 . '</strong> of ' . $lastPage. ' ';
if ($id2 != 1) {
$previous = $id2 - 1;
//$paginationDisplay .= ' <a href="next?id=' . $previous . '"> Back</a> ';
$paginationDisplay .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $previous .'")> Back</a> ';
}
$paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
if ($id2 != $lastPage) {
$nextPage = $id2 + 1;
$paginationDisplay .= ' <a href="#" onclick=showUser(str="'. $id .'",ids="'. $nextPage .'")> Next</a> ';
//$paginationDisplay .= ' <a href="next.php?id=' . $nextPage . '"> Next</a> ';
}
}
Как я могу это сделать? Некоторая помощь... Спасибо за продвижение
Чтобы отображать номера страниц, вы должны сначала подсчитать количество страниц на основе результатов и лимита страницы.
Используйте столбец "SQL_CALC_FOUND_ROWS as COUNT" в вашем запросе sql, который получает количество результатов. И сохраните его в переменной, например $ total_results.
Рассчитайте количество страниц, используя формулу,
$page_count = ($total_results / $page_limit) + 1
Где,
$page_count => The number of pages available \n
$total_results => The number of result rows (from sql query COUNT)
$page_limit => Number of results shown in each page
На странице PHP напечатайте HTML, как это для выпадающего списка,
<select id='pageNo'>
<?php
for($i=1; $i < $page_count; $i++) {
echo "<option value='".$i."'>".$i."</option>";
}
?>
</section>
В jQuery напишите функцию изменения,
$('#pageNo').on('change', function(){
var loadPage = $('#pageNo').val();
// Do your page submit to load another page
});
Я надеюсь, что это поможет вам. Пожалуйста, измените это в соответствии с вашими потребностями.