php ajax 无刷新翻页实现代码
下面只是一个测试,在实际应用中,可能这种方法会比较占系统资源,不建意利用这样的方法处理分页效果,代码如下:
var http_request = false; function send_request(url) { //初始化,指定处理函数,发送请求的函数 http_request = false; //开始初始化xmlhttprequest对象 if (window.xmlhttprequest) { //mozilla浏览器 http_request = new xmlhttprequest(); if (http_request.overridemimetype) { //设置mime类别 http_request.overridemimetype("text/xml"); } } else if (window.activexobject) { //ie浏览器 try { http_request = new activexobject("msxml2.xmlhttp"); } catch (e) { try { http_request = new activexobject("microsoft.xmlhttp"); } catch (e) {} } } if (!http_request) { //异常,创建对象实例失败 window.alert("创建xmlhttp对象失败!"); return false; } http_request.onreadystatechange = processrequest; //确定发送请求方式,url,及是否同步执行下段代码 http_request.open("get", url, true); http_request.send(null); } //处理返回信息的函数 function processrequest() { if (http_request.readystate == 4) { //判断对象状态 if (http_request.status == 200) { //信息已成功返回,开始处理信息 document.getelementbyid('result').innerhtml = http_request.responsetext; } else { //页面不正常 alert("您所请求的页面不正常!"); } } } function dopage(obj, url) { document.getelementbyid(obj).innerhtml = "正在读取数据..."; send_request(url); reobj = obj; } php html处理代码: <div id="result"> <?php $classid = $_request['classid']; //注意有个问题,就是数据如果总数小于每页数据不能显示 $page = isset($_get['page']) ? intval($_get['page']) : 1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。 $num = 10; //每页显示10条数据 require "conn.php"; mysql_select_db($database_lr, $lr); /* 首先咱们要获取数据库教程中到底有多少数据,才能判断具体要分多少页,具体的公式就是 总数据库除以每页显示的条数,有余进一。 也就是说10/3=3.3333=4 有余数就要进一。 */ $result = mysql_query("select * from blog where classid='$classid'"); $total = mysql_num_rows($result); //查询所有的数据 $url = 'show_main.php'; //获取本页url //页码计算 $pagenum = ceil($total / $num); //获得总页数,也是最后一页 $page = min($pagenum, $page); //获得首页 $prepg = $page - 1; //上一页 $nextpg = ($page == $pagenum ? 0 : $page + 1); //下一页 $offset = ($page - 1) * $num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。 //开始分页导航条代码: $pagenav = $page . "/" . $pagenum . " <b> " . ($total ? ($offset + 1) : 0) . "</b>-<b>" . min($offset + 10, $total) . "</b> total $total "; //第一页: if ($page == 1) { $pagenav.= "first "; } else { $pagenav.= "<a href=网页特效:dopage('result','$url?classid=$classid&page=1');>first</a> "; } if ($prepg) $pagenav.= " <a href=javascript:dopage('result','$url?classid=$classid&page=$prepg');>prev</a> "; else $pagenav.= " prev "; if ($nextpg) $pagenav.= " <a href=javascript:dopage('result','$url?classid=$classid&page=$nextpg');>next</a> "; else $pagenav.= " next "; if ($pagenum > $page) { $pagenav.= " <a href=javascript:dopage('result','$url?classid=$classid&page=$pagenum');>last</a> "; } else { $pagenav.= " last"; } $pagenav.= " total page $pagenum "; //假如传入的页数参数大于总页数,则显示错误信息 if ($page > $pagenum) { echo "error : can not found the page " . $page; exit; } $info = mysql_query("select * from blog where classid='$classid' order by id desc limit $offset,$num"); //获取相应页数所需要显示的数据 if ($total > 0) { while ($it = mysql_fetch_array($info)) { echo $it['title'] . " (" . $it['updatetime'] . ")"; echo "<br>"; echo $it['content']; echo "<br>"; } //显示数据 echo "<br>"; echo $pagenav; //输出分页导航 } else { echo "no comment."; } ?> </div>
文章网址:http://www.phprm.com/develop/fs4235.html
随意转载^^但请附上教程地址。