基于Jquery 分页,
工具:JS + Jquery + PHP + Sql
功能:PC端,总页数 >= 10 .分10个分页按钮,< 10 分5个分页按钮。没有添加首页尾页的跳转功能。有兴趣可以自己添加一下。
图片展示:





HTML:
1 <style> 2 * {list-style: none;margin: 0;padding: 0;} 3 .button {padding: 10px 30px;background: #e2e2e2;border: none;} 4 .bbol,.bbul {display: block;width: 80%;margin: 0 auto;} 5 .bbol li {font-size: 20px;font-weight: bold;} 6 .bbul li,.bbol li {display: inline-block;width: 20%;text-align: center;padding: 20px 10px;box-sizing: border-box;} 7 .page {text-align: center;} 8 .page ul {display: inline-block;} 9 .page ul li {display: inline-block;width: 30px;height: 30px;line-height: 30px;margin: 10px 5px;background: #e2e2e2;cursor: pointer;user-select: none;} 10 .page ul li:hover {background: #80d3fb;color: white;} 11 .page ul li.prev,.page ul li.next {width: 70px;} 12 .page ul li.active {background: #80d3fb;color: white;} 13 </style> 14 <button class="button">search</button> 15 <div class="search_content"> 16 <ol class="bbol"></ol> 17 </div> 18 <div class="page"> 19 <ul></ul> 20 </div>
JS:
1 init_search(5,"./page.php"); 2 // 每页显示条数、请求地址 3 4 function init_search(display_data,ajax_link) { 5 $(".button").click(function () { 6 var ajaxbb = 0; 7 var bbarr = ["Property_Name", "Profile_Type", "advocacy_cycle", "suburb", "id"]; 8 var pagebb = 0; //所有要展示的数据条数 9 var pageallnum = 0; //分出的页数 10 var num = display_data; //每页展示的数据条数 11 var pageboo = false; 12 var pagenum = 0; //当前页面位置 13 var pageullifn_boo = false; 14 var ajax_url = ajax_link; 15 page_ajax({ 'name': "b" }, function (b) { 16 ajaxbb = JSON.parse(b); 17 pagefn(ajaxbb, bbarr, pagebb, pageallnum, num, pageboo, pagenum, pageullifn_boo,ajax_url); 18 },ajax_url) 19 pageprev = function (pageboo) { 20 if (pageboo) { 21 $(".page ul").prepend('<li class = "prev">< prev</li>'); 22 } 23 } 24 mediafn(); 25 }) 26 } 27 function pagefn(ajaxbb, bbarr, pagebb, pageallnum, num, pageboo, pagenum, pageullifn_boo,ajax_url) { 28 $('.search_content ul').remove(); 29 $('.search_content ol li').remove(); 30 $('.page ul li').remove(); 31 32 page_ajax({ 'name': "a", "ajaxpage_begin": pagenum * num, "ajaxpage_all": num },function (b) {pagebb = JSON.parse(b);},ajax_url); 33 pageallnum = Math.ceil(ajaxbb[0][0]/ num); 34 console.log(ajaxbb[0][0] + "----取到的数据总条数"); //取到的数据总条数 35 console.log(pageallnum + "----pageallnum——————总页数"); 36 // 分页块数 37 pageprev(pageboo); 38 39 if (pageallnum == 0) { 40 $(".page ul").append('<li num = "0">0</li>'); 41 } 42 if (pageallnum >= 10) { 43 init_page(1, 10, pageallnum); 44 } else { 45 init_page(1, 5, pageallnum); 46 } 47 if (pageallnum > 1) { 48 $(".page ul").append('<li class = "next">next ></li>'); 49 } 50 $('.page ul li').eq(0).addClass("active"); 51 $(".page ul").off(); 52 //左右点击 53 // prev 54 $(".page ul").on("click", ".prev", function () { 55 pagenum--; 56 prev_if(pagenum,pageboo,pageallnum,num,pagebb,pageullifn_boo,bbarr,ajax_url); 57 page_ajax({ 'name': "a", "ajaxpage_begin": pagenum * num, "ajaxpage_all": num },function (b) {pagebb = JSON.parse(b);},ajax_url); 58 $(".search_content ul").remove(); 59 pagebbfn(pagebb, bbarr); 60 mediafn(); 61 }) 62 63 // next 64 $(".page ul").on("click", ".next", function () { 65 pagenum++; 66 next_if(pagenum,pageboo,pageallnum,pageullifn_boo); 67 page_ajax({ 'name': "a", "ajaxpage_begin": pagenum * num, "ajaxpage_all": num },function (b) {pagebb = JSON.parse(b);},ajax_url); 68 $(".search_content ul").remove(); 69 pagebbfn(pagebb, bbarr); 70 mediafn(); 71 }) 72 73 // 展示数据 74 for (const olbbarr in bbarr) { 75 $(".search_content ol").append('<li>' + bbarr[olbbarr] + '</li>'); 76 } 77 pagebbfn(pagebb, bbarr); 78 // 分页按钮点击 79 $(".page ul").on("click", ".page_li", function () { 80 if($(this).text()-1 >= pagenum){ 81 pagenum = $(this).text()-1; 82 if(pagenum != 0){ 83 next_if(pagenum,pageboo,pageallnum,pageullifn_boo); 84 } 85 }else{ 86 if($(".page ul li:last").attr('class') != "next"){ 87 $(".page ul").append('<li class = "next">next ></li>'); 88 } 89 pagenum = $(this).text()-1; 90 prev_if(pagenum,pageboo,pageallnum,num,pagebb,pageullifn_boo,bbarr,ajax_url); 91 } 92 console.log($(this).text()-1); 93 page_ajax({ 'name': "a", "ajaxpage_begin": pagenum * num, "ajaxpage_all": num },function (b) {pagebb = JSON.parse(b);},ajax_url); 94 $(".search_content ul").remove(); 95 pagebbfn(pagebb, bbarr); 96 mediafn(); 97 }) 98 } 99 100 // 分页按钮 101 function init_page(page_begin, page_all, pageallnum) { 102 for (let i = page_begin, page_length = 1; i <= pageallnum; i++, page_length++) { 103 if (page_length <= page_all) { 104 $(".page ul").append('<li class="page_li">' + i + '</li>'); 105 } 106 } 107 } 108 109 // 数据展示 110 function pagebbfn(pagebb, bbarr) { 111 for (const bbk in pagebb) { 112 $(".search_content").append('<ul class = "bbul"></ul>') 113 for (const bbarrk in bbarr) { 114 $(".search_content ul:nth-last-child(1)").append('<li>' + pagebb[bbk][bbarr[bbarrk]] + '</li>'); 115 } 116 } 117 } 118 119 // 左点击按钮 120 function pageprev(pageboo) { 121 if (pageboo) { 122 $(".page ul").prepend('<li class = "prev">< prev</li>'); 123 } 124 } 125 126 // Ajax 请求 127 function page_ajax(obj, fn ,ajax_url) { 128 $.ajax({ 129 // 同步请求数据 false ,在此等情况下 ajax 没有执行完毕的情况下其他js 不会继续执行 130 async: false, 131 type: "post", 132 url: ajax_url, 133 data: obj, 134 success: fn 135 }); 136 } 137 138 // 大于10页展示方式 139 function page_more(pagenum, pageallnum, pageullifn_boo) { 140 if (pagenum >= 5) { 141 $(".page ul").html(""); 142 $(".page ul").prepend('<li class = "prev">< prev</li>'); 143 if ((pageallnum - pagenum) <= 5) { 144 init_page(pageallnum - 9, 10, pageallnum); 145 pageullifn_boo = true; 146 } else { 147 pageullifn_boo = false; 148 init_page(pagenum - 4, 10, pageallnum); 149 } 150 if (pageullifn_boo) { 151 $(".page ul").append('<li class = "next">next ></li>'); 152 if (pageallnum >= 10) { 153 $('.page ul li').eq(pagenum - (pageallnum - 11)).addClass("active").siblings().removeClass('active'); 154 } else { 155 $('.page ul li').eq(pagenum - 1).addClass("active").siblings().removeClass('active'); 156 } 157 } else { 158 $(".page ul").append('<li class = "next">next ></li>'); 159 $('.page ul li').eq(6).addClass("active").siblings().removeClass('active'); 160 } 161 } else { 162 $('.page ul li').remove(); 163 $(".page ul").prepend('<li class = "prev">< prev</li>'); 164 init_page(1, 10, pageallnum); 165 $(".page ul").append('<li class = "next">next ></li>'); 166 $('.page ul li').eq(pagenum + 1).addClass("active").siblings().removeClass('active'); 167 } 168 } 169 170 // 小于10页展示方式 171 function page_little(pagenum, pageallnum, pageullifn_boo, page_fn1, page_fn2) { 172 $(".page ul").html(""); 173 $(".page ul").prepend('<li class = "prev">< prev</li>'); 174 if (page_fn1) { 175 if ((pageallnum - pagenum) <= 3) { 176 if (pageallnum < 5) { 177 init_page(1, 5, pageallnum); 178 } else { 179 init_page(pageallnum - 4, 5, pageallnum); 180 } 181 pageullifn_boo = true; 182 } else { 183 pageullifn_boo = false; 184 init_page(pagenum - 1, 5, pageallnum); 185 } 186 if (pageullifn_boo) { 187 $(".page ul").append('<li class = "next">next ></li>'); 188 if (pageallnum > 10) { 189 $('.page ul li').eq(pagenum - (pageallnum - 11)).addClass("active").siblings().removeClass('active'); 190 } else { 191 if (pageallnum < 5) { 192 $('.page ul li').eq(page_fn2).addClass("active").siblings().removeClass('active'); 193 } else { 194 $('.page ul li').eq(pagenum - (pageallnum - 6)).addClass("active").siblings().removeClass('active'); 195 } 196 } 197 } else { 198 $(".page ul").append('<li class = "next">next ></li>'); 199 $('.page ul li').eq(3).addClass("active").siblings().removeClass('active'); 200 } 201 } else { 202 if(pagenum > 2 ){ 203 init_page(pagenum, 5, pageallnum); 204 }else{ 205 init_page(1, 5, pageallnum); 206 } 207 $('.page ul li').eq(pagenum + 1).addClass("active").siblings().removeClass('active'); 208 $(".page ul").append('<li class = "next">next ></li>'); 209 } 210 } 211 212 function prev_if(pagenum,pageboo,pageallnum,num,pagebb,pageullifn_boo,bbarr,ajax_url){ 213 if (pagenum <= 0) { 214 pageboo = false; 215 $('.prev').remove(); 216 if ((pagenum <= 0 && pageallnum == 2) || pagenum <= 0) { 217 if($(".page ul li:last").attr('class') != "next"){ 218 $(".page ul").append('<li class = "next">next ></li>'); 219 } 220 } 221 pageprev = function (pageboo) { 222 if (pageboo) { 223 $(".page ul").prepend('<li class = "prev">< prev</li>'); 224 } 225 } 226 $('.page ul li').eq(pagenum).addClass("active").siblings().removeClass( 227 'active'); 228 229 page_ajax({ 'name': "a", "ajaxpage_begin": pagenum * num, "ajaxpage_all": num },function (b) {pagebb = JSON.parse(b);},ajax_url); 230 $(".search_content ul").remove(); 231 pagebbfn(pagebb, bbarr); 232 return false; 233 } 234 if (pageallnum >= 10) { 235 page_more(pagenum, pageallnum, pageullifn_boo) 236 } else { 237 page_little(pagenum, pageallnum, pageullifn_boo, pagenum >= 2 || pageallnum < 5, pagenum - (pageallnum - (pageallnum + 1))); 238 } 239 } 240 241 function next_if(pagenum,pageboo,pageallnum,pageullifn_boo){ 242 if (pagenum > 0) { 243 pageboo = true; 244 pageprev(pageboo); 245 pageprev = function () { } 246 if (pagenum >= pageallnum) { 247 pagenum = pageallnum - 1; 248 } 249 } 250 if (pageallnum >= 10) { 251 page_more(pagenum, pageallnum, pageullifn_boo) 252 } else { 253 page_little(pagenum, pageallnum, pageullifn_boo,pagenum >= 3,pagenum - (pageallnum - 5)); 254 } 255 if ((pagenum + 1) == pageallnum) { 256 $('.next').remove(); 257 } 258 } 259 260 function mediafn(){ 261 if(window.innerWidth < 992){ 262 $('.page ul li').each(function(){ 263 if($(this).attr("class").indexOf("active") > 0 || $(this).attr("class").indexOf("prev") >= 0 || $(this).attr("class").indexOf("next") >= 0){ 264 }else{ 265 $(this).remove(); 266 } 267 }) 268 } 269 }
PHP:
1 <?PHP 2 $pdo = new pdo('mysql:host=localhost;dbname=testone','root','123456'); 3 switch ($_POST['name']) { 4 case 'a': 5 $page = $pdo->query("select * from member where Chargeable_Rooms is not NULL LIMIT ".$_POST['ajaxpage_begin'].",".$_POST['ajaxpage_all']."")->fetchAll(PDO::FETCH_ASSOC); 6 echo (json_encode($page)); 7 break; 8 case 'b': 9 $pagecount = $pdo->query("select count(*) from member where Chargeable_Rooms is not NULL")->fetchAll(PDO::FETCH_ASSOC); 10 $pagenum = array(); 11 foreach ($pagecount[0] as $key => $value) { 12 $pagenum[0] = $value; 13 } 14 echo (json_encode([$pagenum])); 15 break; 16 default: 17 # code... 18 break; 19 }
有什么改进的意见的话请联系本人QQ;
QQ号:1667010737;同邮箱


浙公网安备 33010602011771号