Pagination is one of most common things we face everywhere, wherever there is no infinite scrolling. Pagination can be achieved server side with php as well, but those is bit slower and require multiple request again and again to site or you need to precisely use ajax, but what if you want simpler solution, that’s going to be great for you and user as well.
What’s my idea?
Instead of downloading list of 10 row per request from server each time user navigate through pages, why not download 100 or even more list once, that will need just moment to download and no additional effort to server, and using pagination hide rest of 90 rows, using client side pagination of tables we can navigate to those 100 records without making much effort, and even if user want more, only in that case we can download further list.
Simple, users don’t have to wait again and again to refresh page, get 10 more data, again refresh, and so on. Instead user will be having lightning access to all 100 record or whatever number you have at once.
So lets get started
What you’ll need.
1. You have to have jquery Google ajax api, that you can get from here.
2. Any html/PHP page where you have table, you can deploy this code.
Initiating pagination in table
Proceed as follows to adding pagination in your table.
Adding Google ajax api in your html head section
First of all, you need to add, Google jquery library to initiate this JavaScript. Just navigate to <head> of your site and add
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> </head> |
Just before closing of your head.
Adding pagination class to your table
First of all, you have to add class “paginated-table” in your table as follows
<table class=”paginated-table”> . . . |
Adding navigation below table
You can add following code after just ending or before table tag of same table in which you want pagination.
I am assuming you have bootstrapped and font awesome integrated, if not, no problem, you can leave these classes as it is.
<span class="prev btn btn-rounded btn-light"><i class="fa fa-angle-double-left"></i> Previous</span> <span class="next btn btn-rounded btn-light"><i class="fa fa-angle-double-right"></i> Next</span> |
Adding pagination script
Copy and paste following code and at the ending of your body tag, add this with script tag. You can see a variable to define max row that should display on each segment, you can change this to any number from 1 to less than table value count.
<script> var maxRows = 5; // Define per page element count $('.paginated-table').each(function() { var cTable = $(this); var cRows = cTable.find('tr:gt(0)'); var cRowCount = cRows.size(); if (cRowCount < maxRows) { return; } cRows.each(function(i) { $(this).find('td:first').text(function(j, val) { return (i + 1) + " - " + val; }); }); cRows.filter(':gt(' + (maxRows - 1) + ')').hide(); var cPrev = cTable.siblings('.prev'); var cNext = cTable.siblings('.next'); cPrev.addClass('disabled'); cPrev.click(function() { var cFirstVisible = cRows.index(cRows.filter(':visible')); if (cPrev.hasClass('disabled')) { return false; } cRows.hide(); if (cFirstVisible - maxRows - 1 > 0) { cRows.filter(':lt(' + cFirstVisible + '):gt(' + (cFirstVisible - maxRows - 1) + ')').show(); } else { cRows.filter(':lt(' + cFirstVisible + ')').show(); } if (cFirstVisible - maxRows <= 0) { cPrev.addClass('disabled'); } cNext.removeClass('disabled'); return false; }); cNext.click(function() { var cFirstVisible = cRows.index(cRows.filter(':visible')); if (cNext.hasClass('disabled')) { return false; } cRows.hide(); cRows.filter(':lt(' + (cFirstVisible +2 * maxRows) + '):gt(' + (cFirstVisible + maxRows - 1) + ')').show(); if (cFirstVisible + 2 * maxRows >= cRows.size()) { cNext.addClass('disabled'); } cPrev.removeClass('disabled'); return false; }); }); </script> |
You can now see clicking on next and previous navigation, jquery table pagination should navigate through paginated rows.
You can download sample html from
and see full code and deployment.
If you having any doubt, please leave comment below, or want to add something cool to this code, let us know, we’ll improve.
Please +1,Like, and share this article to anyone who might need this. Have great day
Helpful and useful info for me. thank u.
ReplyDeletetravel insurance etiqa
etiqa tripcare 360
etiqa tripcare 360 takaful
tripcare 360
Situs Website Resmi http://salmonbones.co.uk/ Terpercaya Di Indonesia.
ReplyDeletehttp://salmonbones.co.uk/qqdewa/
http://salmonbones.co.uk/mposport/
http://salmonbones.co.uk/amdbet/
http://salmonbones.co.uk/asialive88/
http://salmonbones.co.uk/maxbet338/
http://salmonbones.co.uk/omi88/
http://salmonbones.co.uk/bola228/
http://salmonbones.co.uk/astonbet/
http://salmonbones.co.uk/skor88/
Have you heard your coder friends talking about this new exciting #language called #Python and wondered what the big deal is about it? Well, it’s time to find out. Head over to our website and go through all the carefully curated content put together by our writers only for your Python assignment help. Python is growing in popularity, and it’s time for you to get familiar with it as well!
ReplyDeletePython is among the fastest growing high-level languages and has become incredibly popular over the last few years. Lots of students and professors alike prefer to do their project on Python now. If you are looking for a place to get Python homework help, head over to our website and find content to help you out with your assignment submission. for more information, visit at https://buddyassignmenthelp.com/javascript-assignment-help/
DJ MoreMusic
ReplyDeleteDJ MoreMusic
DJ MoreMusic
DJ MoreMusic
DJ MoreMusic
DJ MoreMusic
DJ MoreMusic
DJ MoreMusic
DJ MoreMusic
DJ MoreMusic
God Embassy
It's fantastic that you are getting ideas from this post as well as from our discussion made here.I have enjoyed reading your articles. It is well written. It looks like you spend a large amount of time and effort in writing the blog. I am appreciating your effort.Augurs Technologies Germany
ReplyDelete