Ajax+smarty技术实现无刷新分页

时间:2021-05-28

这里运用Smarty模板,更简单

本文主要的技术:AJAX,PHP,Smarty,另外自己封装了一个很简单的类

类:

  (function(){function $(id) {return document.getElementById(id);}$.init=function() {try{return new XMLHttpRequest();}catch(e){};try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}alert('请更换浏览器');}$.get=function (url,data,callback,type) {var xhr = this.init();url += '?' +new Date().getTime();if(data!=null){url += '&'+data;}xhr.open('get',url);xhr.onreadystatechange = function () {if(xhr.readyState == 4 && xhr.status == 200){if(type==null){callback(xhr.responseText);}if(type == 'text'){callback(xhr.responseText);}if(type == 'xml'){callback(xhr.responseXML);}if(type == 'json'){callback(eval("("+xhr.responseText+")"));}}}xhr.send(null);}$.post = function (url,data,callback,type) {var xhr = this.init();xhr.open('post',url);xhr.setRequestHeader('Content-Type','Application/x-www-form-urlencoded');xhr.onreadystatechange = function () {if(xhr.readyState == 4 && xhr.status == 200){if(type==null){callback(xhr.responseText);}if(type == 'text'){callback(xhr.responseText);}if(type == 'xml'){callback(xhr.responseXML);}if(type == 'json'){callback(eval("("+xhr.responseText+")"));}}}; xhr.send(data);}

 类很简单,不介绍了

HTML:

  window.onload=function () {init(2);}function del(id,p){$.get('del.php','id='+id,function(msg){if(msg==1){init(p);}})}function init(p) {$.get('page.php','page='+p,function(msg){$('result').innerHTML=msg;});}PHP:<?phpheader('content-type:text/html;charset=utf-8');mysql_connect('localhost','root','root');mysql_select_db('db2');mysql_query('set names utf8');$re=mysql_query('select count(*) as num from catgory');$hang=mysql_fetch_assoc($re);$row1=$hang['num'];$page=isset($_GET['page'])? $_GET['page']:1;$pagesize=2;$total=ceil($row1/$pagesize);$prev=$page-1;$next=$page+1;if($prev<1){$prev=1;}if($next>$total){$next=$total;}$offset = ($page-1)*$pagesize;$result=mysql_query("select * from catgory limit ".$offset.','.$pagesize);$ct=mysql_num_rows($result);$data=array();for($i=0;$i<$ct;$i++){$r=mysql_fetch_assoc($result);$data[]=$r;}include('libs/Smarty.class.php');$Smarty=new Smarty();$Smarty->assign('data',$data);$Smarty->assign('page',$page);$Smarty->assign('pagesize',$pagesize);$Smarty->assign('total',$total);$Smarty->assign('prev',$prev);$Smarty->assign('next',$next);$Smarty->assign('row1',$row1);$str=$Smarty->fetch('page.html');echo $str;

Smarty:

    <table border="1" rules="all" width="600"><tr><td>编号</td><td>品牌</td><td>pid</td><td>删除</td></tr>{foreach from=$data item='value'}<tr><td>{$value['id']}</td><td>{$value['name']}</td><td>{$value['pid']}</td><td><a href="#", onclick="del({$value['id']},{$page})">删除</td></tr>{/foreach}<tr><td colspan="3">共{$total}页第{$page}页<a href="#", onclick="init({$prev})">上一页</a><a href="#", onclick="init({$next})">下一页</a><a href="#", onclick="init(1)">第一页</a><a href="#", onclick="init({$total})">最末页</a>共{$row1}条数据每页{$pagesize}条数据</td></tr></table>

要引入smary模板

以上所述是小编给大家介绍的Ajax+smarty技术实现无刷新分页,希望对大家有所帮助!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章