本文主要和大家分享PHP和jQuery實現簡單的分頁,希望能協助到大家。
HTML 頁面:
<!DOCTYPE html><html><head><title>jquery ajax分頁</title></head><body><p><p>下面是擷取的內容</p><ul id="data"><!-- 這裡是顯示的內容 --></ul></p><p id="page"><a href="javascript:void(0)" name="first">首頁</a><a href="javascript:void(0)" name="up">上一頁</a><a href="javascript:void(0)" name="next">下一頁</a><a href="javascript:void(0)" name="last">尾頁</a></p><p><input type="text" id="p" value="1"><!-- 當前頁 --><input type="text" id="pageLast" value=""><!-- 總頁數 --></p></body></html><script type="text/javascript" src="http://code.jquery.com/jquery-1.12.4.js"></script><!-- 偷懶+方便用了線上的jquery檔案 --><script type="text/javascript">$(function(){//頁面載入顯示當前頁的內容var p = $("#p").val();//擷取當前頁ajax(p); //調用ajax方法})$('#page>a').click(function(){//頁碼的點擊事件var name = $(this);//擷取pagenow當前頁和總頁數pagelast,記得使用parseInt,轉換整型var pn = parseInt($("#p").val());var pl = parseInt($("#pageLast").val());switch(name.attr('name')){ //根據a標籤內的name屬性判斷跳轉方向case "first": p = 1;break;case "up": p = pn-1;break;case "next": p = pn+1;break;case "last": p = pl;break;}if (p<1 || p>pl) {return;}else{ajax(p);}})function ajax(p){//ajax方法,與後台互動$.ajax({type:"post",datatype:"json",url:"tb.php",data:{p:p},success:function(msg){$('#data').empty();aa = $.parseJSON(msg); //轉換json格式(在傳回值有小的問題的時候可以使用)pageNow = parseInt(aa[0].page);pn = $("#p").val(pageNow);//賦值當前頁pageLast = parseInt(aa[0].lastpage);pl = $("#pageLast").val(pageLast);//賦值總頁數$.each(aa,function(k,v){//標籤內追加內容$('#data').append('<li>id為:'+v.tb_id+';名稱為:'+v.name+'</li>')})}})}</script>
後台PHP代碼:
<?php$pdo = new PDO("mysql:host=127.0.0.1;dbname=school",'root','root');$sql = "select * from tb";$count = $pdo->query($sql)->rowCount();//當前資料總條數$p = isset($_POST['p'])?$_POST['p']:1;//頁碼$dataPerpage = 5;//每頁顯示條數$offset = ($p-1)*$dataPerpage;//位移量$last = ceil($count/$dataPerpage);//總頁數$sql2 = "select * from tb limit $offset,$dataPerpage";$data = $pdo->query($sql2)->fetchAll(PDO::FETCH_ASSOC);//把當前頁和總頁數發送給前台$data[0]['page'] = $p;$data[0]['lastpage'] = $last;echo json_encode($data);