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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
WHOIS类的修改版
Oct 09 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
php获取服务器信息的实现代码
Feb 04 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
微信 getAccessToken方法详解及实例
Nov 23 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
php之可变函数的实例详解
Sep 13 PHP
php对象工厂类完整示例
Aug 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
新浪SAE搭建PHP项目教程
2015/01/28 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
巧用canvas
2017/01/21 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
Python入门之后再看点什么好?
2018/03/05 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python Subprocess模块原理及实例
2019/08/26 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
Python wordcloud库安装方法总结
2020/12/31 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
教师求职推荐信范文
2013/11/20 职场文书
计算机专业职业规划
2014/02/28 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
教师年度考核评语
2014/04/28 职场文书
节能环保演讲稿
2014/08/28 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
无罪辩护词范文
2015/05/21 职场文书
辅导员学期工作总结
2015/08/14 职场文书
python urllib库的使用详解
2021/04/13 Python