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 相关文章推荐
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
深入PHP变量存储的详解
Jun 13 PHP
PHP的password_hash()使用实例
Mar 17 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
php实现图片缩略图的方法
Mar 29 PHP
总结对比php中的多种序列化
Aug 28 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
Laravel日志用法详解
Oct 09 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 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获取一个字符串中间一部分字符的方法
2014/08/19 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
vue组件实例解析
2017/01/10 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
python模块之time模块(实例讲解)
2017/09/13 Python
python获取代码运行时间的实例代码
2018/06/11 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Python的几种主动结束程序方式
2019/11/22 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
浅谈Python 函数式编程
2020/06/20 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
教师群众路线心得体会
2014/11/04 职场文书
优秀团队申报材料
2014/12/26 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python