Click here to Skip to main content
15,884,388 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am using jquery for pagination. i am pulling 100s of records from the database and then the jquery does the pagination on the front end. All other functionality is working fine except visible pages i want to show 10 or less pages at a time other pages should show on click of next or previous. Please look at image there are 15 records which are coming from database and i am showing one record on per page which is working fine, but all 15 pages are showing same time.

Image: https://www.dropbox.com/s/8od2z5wzoj8l4u6/pager.png?dl=0

Here is my code


JavaScript
function previous(){

 new_page = parseInt($('#current_page').val()) - 1;
 //if there is an item before the current active link run the function
  if($('.active_page').prev('.page_link').length==true){
 go_to_page(new_page);
 }

 }

function next(){
new_page = parseInt($('#current_page').val()) + 1;
//if there is an item after the current active link run the function
if($('.active_page').next('.page_link').length==true){
go_to_page(new_page);
 }

}
function go_to_page(page_num){
 //get the number of items shown per page

 var show_per_page = parseInt($('#show_per_page').val());

  //get the element number where to start the slice from
  start_from = page_num * show_per_page;

  //get the element number where to end the slice
   end_on = start_from + show_per_page;

  //hide all children elements of ayah_image div, get specific items and show them
$('#ayah_image').children().css('display', 'none').slice(start_from, end_on).css('display', 'block');

   /*get the page link that has longdesc attribute of the current page      and add active_page class to it
  and remove that class from previously active page link*/
  $('.page_link[longdesc=' + page_num +']').addClass('active_page').siblings('.active_page').removeClass('active_page');
//update the current page input field
 $('#current_page').val(page_num);
 }


                              $( document ).ready(function() {
                        var show_per_page = 1; 
                        //getting the amount of elements inside ayah_image div
                        var number_of_items = $('#ayah_image').children().size();
                        //calculate the number of pages we are going to have
                        var number_of_pages = Math.ceil(number_of_items/show_per_page);

                        //set the value of our hidden input fields
                        $('#current_page').val(0);
                        $('#show_per_page').val(show_per_page);

                        //now when we got all we need for the navigation let's make it '

                        /* 
                        what are we going to have in the navigation?
                            - link to previous page
                            - links to specific pages
                            - link to next page
                        */
                        var navigation_html = '<a class="previous_link" href="java<!-- no -->script:previous();">Prev</a>';
                        var current_link = 0;
                        while(number_of_pages > current_link){
                            navigation_html += '<a class="page_link" style="height:20px; width:30px;" href="java<!-- no -->script:go_to_page(' + current_link +')" longdesc="' + current_link +'">'+ (current_link + 1) +'</a>';
                            current_link++;

                        }

                        navigation_html += '<a class="next_link" href="java<!-- no -->script:next();">Next</a>';

                        $('#page_navigation').html(navigation_html);

                        //add active_page class to the first page link
                        $('#page_navigation .page_link:first').addClass('active_page');

                        $('#ayah_image').children().css('display', 'none');

                        //and show the first n (show_per_page) elements
                        $('#ayah_image').children().slice(0, show_per_page).css('display', 'block');
                        });
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900