Php пагинация в выпадающем списке

0

У меня есть Dynamic Dropdownlist и php pagination. Я хочу создать раскрывающийся список для номера страницы. Вместо того, чтобы иметь обычную разбивку на страницы (Prev 1-2-3 Next), я хочу, чтобы в раскрывающемся списке. Что-то вроде на страницах администратора, где выпадающее меню позволяет быстро перейти на нужную страницу.

Подобно этому в Phpmyadmin

Изображение 174551

И это моя правая строка кода

Первая страница

<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 .= '&nbsp; <span class="pagNumActive">' . $id2 . '</span> &nbsp;';
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add1 .'")>' . $add1 . '</a> &nbsp;';
} else if ($id2 == $lastPage) {
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub1 .'")>' . $sub1 . '</a> &nbsp;';
    $centerPages .= '&nbsp; <span class="pagNumActive">' . $id2 . '</span> &nbsp;';
} else if ($id2 > 2 && $id2 < ($lastPage - 1)) {
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub2 .'")>' . $sub2 . '</a> &nbsp;';
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub1 .'")>' . $sub1 . '</a> &nbsp;';
    $centerPages .= '&nbsp; <span class="pagNumActive">' . $id2 . '</span> &nbsp;';
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add1 .'")>' . $add1 . '</a> &nbsp;';
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add2 .'")>' . $add2 . '</a> &nbsp;';
} else if ($id2 > 1 && $id2 < $lastPage) {
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $sub1 .'")>' . $sub1 . '</a> &nbsp;';
    $centerPages .= '&nbsp; <span class="pagNumActive">' . $id2 . '</span> &nbsp;';
    $centerPages .= '&nbsp; <a href="#" onclick=showUser(str="'. $id .'",ids="'. $add1 .'")>' . $add1 . '</a> &nbsp;';
}

$limit = 'LIMIT ' .($id2 - 1) * $itemsPerPage .',' .$itemsPerPage; 

//query

$paginationDisplay = "";
if ($lastPage != "1"){
    $paginationDisplay .= 'Page <strong>' . $id2 . '</strong> of ' . $lastPage. '&nbsp;  &nbsp;  &nbsp; ';
    if ($id2 != 1) {
        $previous = $id2 - 1;
        //$paginationDisplay .=  '&nbsp;  <a href="next?id=' . $previous . '"> Back</a> ';
        $paginationDisplay .=  '&nbsp;  <a href="#" onclick=showUser(str="'. $id .'",ids="'. $previous .'")> Back</a> ';
    }                                               
    $paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
    if ($id2 != $lastPage) {
        $nextPage = $id2 + 1;
        $paginationDisplay .=  '&nbsp;  <a href="#" onclick=showUser(str="'. $id .'",ids="'. $nextPage .'")> Next</a> ';
        //$paginationDisplay .=  '&nbsp;  <a href="next.php?id=' . $nextPage . '"> Next</a> ';
    } 
}

Как я могу это сделать? Некоторая помощь... Спасибо за продвижение

Теги:

1 ответ

0

Чтобы отображать номера страниц, вы должны сначала подсчитать количество страниц на основе результатов и лимита страницы.

Используйте столбец "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
});

Я надеюсь, что это поможет вам. Пожалуйста, измените это в соответствии с вашими потребностями.

  • 0
    Я получил трудное время в jquery. Как я могу смешать это в моем JQuery? простите меня
  • 0
    Это независимый сценарий. Вы можете разместить его где угодно в вашем файле JavaScript страниц.
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню