php+ajax+json实现分页
2012-10-06 20:11
211 查看
在web开发,尤其是内容站的开发,分页总是一个说不完道不尽的话题。分页到好坏也直接关系到我们网站能否有一个好的用户体验。尤其在显示大量数据,一个高效的分页方法直接关系到网站的访问速速。
分页的原理就不讲了,把数据库中的数据用一定的方法分为一段一段来显示,这个应该大家都知道。分页有很多方法,说说我学习分页的过程吧。
我在刚开始学做开发的时候,第一次做是弄个新闻系统,不知道从哪里找了一本不知道有多垃圾的参考书(全书实例那种,只要把代码抄一遍,就可以出东西的那种,不知道自己当时怎么想的),把所有的数据取出来,然后逐个逐个排一下,前十个放第一页,再十个放第二而……然后呢,多添几条数据,这个页面就没法打开了。再后来我就知道,其实为什么要一下取这么多数据,直接配合数据库,用limit可以很好的解决这个问题。再后来,配合ajax可以无刷新分页,,等等这一些方法,虽然刚开始挺傻的,但是慢慢一个过程下来,还是能有收获的。
这里就不说那些傻不垃圾的学习过程了,我们的主题是说php+ajax+json实现无刷新分页,先看个效果图。
我做的这个应用每一次只显示一个数据实例,所以只是在做上一个,下一个,但是原理是一样的,就以这个实例来讲了。
第一步,定义全局XMLHttpRequest对象实例,这个和其他ajax操作是一样的,就不讲了。
第二步,定义发送请求函数,这个也是千往篇一律的,不讲了。
第三步,定义一个分页函数。点击Prev One,查找上一条数据;点击Next One,查找下一条数据。分页函数传进两个参数,pg值为-1或1,表示上一页或下一页,maxpg表示总页数。如果点击上一页或下一页是超出页面范围给予错误提示,并做相应处理。
JavaScript代码
var page=1;//全局变量
//进行翻页操作
function doPage(pg,maxpg)
{
page+=pg;
if(page<1)
{
page=1;
alert("当前已是第一条");
}
if(page>maxpg)
{
page=maxpg;
alert("当前已是最后一条");
}
var url="http://localhost:81/joke/page.php?page="+page;
sendRequest(url);
}
第四步,生成josn数据。这步应该算是核心了,但是其实并不难,主要是有一个函数,string json_encode ( mixed
PHP代码
$info=array(array('contentinfo'=>$content,'good'=>$good,'bad'=>$bad,'dnum'=>$dnum));
$contentinfo=json_encode($info);
echo $contentinfo;
是吧,代码都很简单,其中$content,$good,$bad,$dnum用php直接查出来就即可。细心的人也许很快就发现了,上面只有一条数据,为什么要用两个array呢,有两个原因,一是用两个array也调用显示时会更方便,二是真正用来分页时,肯定是有多条数据啦,为了好移植。
第五步,解析json数据。这里要用到这个函数eval(strng),也放个链接在这,自己看。
JavaScript代码
//json处理
var resultStr=http.responseText;
var show_info=eval(resultStr);
document.getElementById("jtext").innerHTML=show_info[0].contentinfo;
document.getElementById("jgood").innerHTML=show_info[0].good;
document.getElementById("jbad").innerHTML=show_info[0].bad;
document.getElementById("jdnum").innerHTML=show_info[0].dnum;
信息成功反回,处理信息,先用responseText把返回的数据接收下来,用eval()函数执行,得到二维数组,数组应该都会用吧。然后把相应的值再返回到php文件中,这整一个效果就出来了。
这么几步下来,是不是觉得非常简单呀,其实用json来传输数据,最优势的地方,并不是简单,而是传输效率和解析速度,相对于其他方法,那真叫一个快。本例其实也可以用xml来实现,但是xml的解析一个是复杂,一个是没有效率。
看完有没想立马试一试的感觉呢???
转载本站原创文章请注明作者和出处 畅想网-畅想博客
分页的原理就不讲了,把数据库中的数据用一定的方法分为一段一段来显示,这个应该大家都知道。分页有很多方法,说说我学习分页的过程吧。
我在刚开始学做开发的时候,第一次做是弄个新闻系统,不知道从哪里找了一本不知道有多垃圾的参考书(全书实例那种,只要把代码抄一遍,就可以出东西的那种,不知道自己当时怎么想的),把所有的数据取出来,然后逐个逐个排一下,前十个放第一页,再十个放第二而……然后呢,多添几条数据,这个页面就没法打开了。再后来我就知道,其实为什么要一下取这么多数据,直接配合数据库,用limit可以很好的解决这个问题。再后来,配合ajax可以无刷新分页,,等等这一些方法,虽然刚开始挺傻的,但是慢慢一个过程下来,还是能有收获的。
这里就不说那些傻不垃圾的学习过程了,我们的主题是说php+ajax+json实现无刷新分页,先看个效果图。
我做的这个应用每一次只显示一个数据实例,所以只是在做上一个,下一个,但是原理是一样的,就以这个实例来讲了。
第一步,定义全局XMLHttpRequest对象实例,这个和其他ajax操作是一样的,就不讲了。
第二步,定义发送请求函数,这个也是千往篇一律的,不讲了。
第三步,定义一个分页函数。点击Prev One,查找上一条数据;点击Next One,查找下一条数据。分页函数传进两个参数,pg值为-1或1,表示上一页或下一页,maxpg表示总页数。如果点击上一页或下一页是超出页面范围给予错误提示,并做相应处理。
JavaScript代码
var page=1;//全局变量
//进行翻页操作
function doPage(pg,maxpg)
{
page+=pg;
if(page<1)
{
page=1;
alert("当前已是第一条");
}
if(page>maxpg)
{
page=maxpg;
alert("当前已是最后一条");
}
var url="http://localhost:81/joke/page.php?page="+page;
sendRequest(url);
}
第四步,生成josn数据。这步应该算是核心了,但是其实并不难,主要是有一个函数,string json_encode ( mixed
$value[, int
$options= 0 ] ),这个函数给个链接在这,自己可以去看看。
PHP代码
$info=array(array('contentinfo'=>$content,'good'=>$good,'bad'=>$bad,'dnum'=>$dnum));
$contentinfo=json_encode($info);
echo $contentinfo;
是吧,代码都很简单,其中$content,$good,$bad,$dnum用php直接查出来就即可。细心的人也许很快就发现了,上面只有一条数据,为什么要用两个array呢,有两个原因,一是用两个array也调用显示时会更方便,二是真正用来分页时,肯定是有多条数据啦,为了好移植。
第五步,解析json数据。这里要用到这个函数eval(strng),也放个链接在这,自己看。
JavaScript代码
//json处理
var resultStr=http.responseText;
var show_info=eval(resultStr);
document.getElementById("jtext").innerHTML=show_info[0].contentinfo;
document.getElementById("jgood").innerHTML=show_info[0].good;
document.getElementById("jbad").innerHTML=show_info[0].bad;
document.getElementById("jdnum").innerHTML=show_info[0].dnum;
信息成功反回,处理信息,先用responseText把返回的数据接收下来,用eval()函数执行,得到二维数组,数组应该都会用吧。然后把相应的值再返回到php文件中,这整一个效果就出来了。
这么几步下来,是不是觉得非常简单呀,其实用json来传输数据,最优势的地方,并不是简单,而是传输效率和解析速度,相对于其他方法,那真叫一个快。本例其实也可以用xml来实现,但是xml的解析一个是复杂,一个是没有效率。
看完有没想立马试一试的感觉呢???
转载本站原创文章请注明作者和出处 畅想网-畅想博客
相关文章推荐
- Ajax+js+dom+json+php+mysql实现仿百度、google超强分页效果
- Ajax+js+dom+json+php+mysql实现仿google的超强分页、隔行变色效果
- ajax+js+dom+json+php+mysql实现仿百度、google的分页效果
- mysql+php+ajax实现分页查询(JSON拼接)
- ajax+js+dom+json+php+mysql实现仿百度、google的分页效果
- jQuery+Ajax+PHP+Mysql实现分页显示数据
- jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
- PHP+JQUEY+AJAX实现分页
- PHP+JQUEY+AJAX实现分页
- PHP Ajax JavaScript Json获取天气信息实现代码
- asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
- PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
- 基于Jquery+Ajax+Json实现分页显示附效果图
- PHP中使用jQuery+Ajax实现分页查询多功能操作
- PHP-Ajax实现无刷新分页
- php+jquery+ajax+json实现跨域调用 php pdo操作oracle数据库
- asp.net中利用Jquery+Ajax+Json实现无刷新分页
- 使用ajax、pageHelpler分页插件、利用json数据特性实现分页查询
- 使用Jquery+Ajax+Json如何实现分页显示附JAVA+JQuery实现异步分页
- PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)