php jquery 实现新闻标签分类与无刷新分页


Posted in PHP onDecember 18, 2009

现在jquery的应用越来越广泛了,在很多网站的新闻板块都实现了 标签分类 + 无刷新分页 的效果。
也自己尝试写了一个,效果图如下(样式可以按用户需求自己去整):

php jquery 实现新闻标签分类与无刷新分页 

接下来详细介绍实现过程:

我一向是见招拆招的解决思路,这里需要运用到3个东西——标签页效果插件和分页插件,jquery的getJson请求。

因此我使用了jquery-ui插件,jquery-page插件,现提供下载地址:

jquery_all.rar 
 里面包含了3个JS脚本文件和2个样式表:
jquery-1.3.2.min.js
jquery.pager.js
jquery-ui-1.7.2.custom.min.js
jquery-ui-1.7.2.custom.css

Page.css
html页面代码如下:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>php + jquery ui + jquery pager</title> 
<link type="text/css" href="/css/jquery-ui-1.7.2.custom.css" rel="stylesheet" /> 
<link rel="stylesheet" href="/css/page.css" type="text/css" /> 
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="/js/jquery-ui-1.7.2.custom.min.js"></script> 
<script src="/js/jquery.pager.js" type="text/javascript"></script> 
<script type="text/javascript" language="javascript"> 
$(document).ready(function(){ 
$('#tabs').tabs(); 
$.getJSON("ajax4.php",{ pager: 1, count: 10 },function(json){ 
$("#content1").html(json[1]); 
$("#pager1").pager({ pagenumber: 1, pagecount: json[0], buttonClickCallback: PageClick1 }); 
}); 
$.getJSON("ajax5.php",{ pager: 1, count: 10 },function(json){ 
$("#content2").html(json[1]); 
$("#pager2").pager({ pagenumber: 1, pagecount: json[0], buttonClickCallback: PageClick2 }); 
}); 
$.getJSON("ajax6.php",{ pager: 1, count: 10 },function(json){ 
$("#content3").html(json[1]); 
$("#pager3").pager({ pagenumber: 1, pagecount: json[0], buttonClickCallback: PageClick3 }); 
}); 
}); 
PageClick1 = function(pageclickednumber) 
{ 
TestClick1(pageclickednumber); 
} 
function TestClick1(pageclickednumber) 
{ 
$.getJSON("ajax4.php",{ pager: pageclickednumber, count: 10 },function(json){ 
$("#content1").html(json[1]); 
$("#pager1").pager({ pagenumber: pageclickednumber, pagecount: json[0], buttonClickCallback: PageClick1 }); 
}); 
} 
PageClick2 = function(pageclickednumber) 
{ 
TestClick2(pageclickednumber); 
} 
function TestClick2(pageclickednumber) 
{ 
$.getJSON("ajax5.php",{ pager: pageclickednumber, count: 10 },function(json){ 
$("#content2").html(json[1]); 
$("#pager2").pager({ pagenumber: pageclickednumber, pagecount: json[0], buttonClickCallback: PageClick2 }); 
}); 
} 
PageClick3 = function(pageclickednumber) 
{ 
TestClick3(pageclickednumber); 
} 
function TestClick3(pageclickednumber) 
{ 
$.getJSON("ajax6.php",{ pager: pageclickednumber, count: 10 },function(json){ 
$("#content3").html(json[1]); 
$("#pager3").pager({ pagenumber: pageclickednumber, pagecount: json[0], buttonClickCallback: PageClick3 }); 
}); 
} 
</script> 
</head> 
<body> 
<!-- Tabs --> 
<div id="tabs"> 
<ul> 
<li><a href="#tabs-1">2009年</a></li> 
<li><a href="#tabs-2">2008年</a></li> 
<li><a href="#tabs-3">2007年</a></li> 
</ul> 
<div id="tabs-1"> 
<div id="content1" ></div> 
<div id="pager1" ></div> 
</div> 
<div id="tabs-2"> 
<div id="content2" ></div> 
<div id="pager2" ></div> 
</div> 
<div id="tabs-3"> 
<div id="content3" ></div> 
<div id="pager3" ></div> 
</div> 
</div> 
</body> 
</html>

页面对ajax4.php,ajax5.php,ajax6.php三个页面进行了getJson请求,
这3个页面代码都差不多,无非是年份的分类而已,我这里没做代码优化了,
实际完全可以放在同一个页面里处理完,请求地址里附带个参数就行了。
ajax.php代码如下:
<?php 
header("content-type:text/html;charset:utf-8"); 
$db = @ mysql_connect("服务器主机地址","数据库帐号","数据库密码"); 
mysql_select_db("数据库名"); 
$rs=mysql_query("set names utf8"); 
//如果传递了pager参数 
if(isset($_GET['pager']) && isset($_GET['count'])) 
{ 
echo GetPager($_GET['count'],$_GET['pager']); 
} 
else 
{ 
echo "没有传入参数!"; 
} function GetPager($count,$pager) 
{ 
$begin = 开始时间; 
$end = 结束时间; 
$rs=mysql_query("SELECT * FROM 数据表 WHERE (pubdate BETWEEN $begin AND $end) ORDER BY pubdate DESC limit ".($pager-1)*$count.",".$count); 
while ($r=mysql_fetch_assoc($rs)) 
{ 
$temp[]=$r; 
} 
$html_string="<table cellpadding='0' border='0' align='center' width='400' style=' padding: 8px 4px 1px 10px; ' cellpacing='0'>"; 
foreach($temp as $k=>$v) 
{ 
//假设 url字段为链接地址,title为新闻标题,pubdate为发表时间 
$html_string.=" <tr height='22'><td valign='middle' width='*' class='tt2'><img align='middle' alt='*' src='/images/bullet.gif'/> <a target='_blank' href='".$v['url']."'>".$v['title']."</a></td><td align='right' width='100'>".$v["pubdate"]."</td></tr>"; 
} 
$html_string.="</table>"; 
//这个是新闻读取的数量,不建议读取太多 
$num=40; 
//新闻的总页数取整 
$num_string=ceil($num/$count); 
//这里用键值对的方式 返回JSON格式的数据,0为新闻总页数,1为拼接的HTML新闻页面 
$arr=array("0"=>$num_string, "1"=>$html_string); 
$jarr=json_encode($arr); 
echo $jarr; 
} 
?>

jquery_all.rar 
PHP 相关文章推荐
初探PHP5
Oct 09 PHP
兼容PHP5的PHP目录管理函数库
Jul 10 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
php中几种常见安全设置详解
Apr 06 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
May 02 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
PHP单链表的实现代码
Jul 05 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
详解php中生成标准uuid(guid)的方法
Apr 28 PHP
PHP XML操作类DOMDocument
Dec 16 #PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 #PHP
php生成xml简单实例代码
Dec 16 #PHP
PHP 基本语法格式
Dec 15 #PHP
php遍历目录viewDir函数
Dec 15 #PHP
php csv操作类代码
Dec 14 #PHP
PHP开发过程中常用函数收藏
Dec 14 #PHP
You might like
PHP 事件机制(2)
2011/03/23 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
python远程登录代码
2008/04/29 Python
用python 制作图片转pdf工具
2015/01/30 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Django配置文件代码说明
2019/12/04 Python
Python字典底层实现原理详解
2019/12/18 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
this关键字的作用
2016/01/30 面试题
2014年安全生产大检查方案
2014/05/13 职场文书
水利水电专业自荐信
2014/07/08 职场文书
教师个人成长总结
2015/02/11 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
人民币使用说明书
2019/04/17 职场文书