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 删除记录同时删除图片文件的实现代码
May 12 PHP
phpize的深入理解
Jun 03 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 PHP
php遍历目录方法小结
Mar 10 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
PHP一个简单的无需刷新爬虫
Jan 05 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 PHP
php实现JWT验证的实例教程
Nov 26 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
中国的第一台收音机
2021/03/01 无线电
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
php防止sql注入简单分析
2015/03/18 PHP
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
详解js中Array的方法及技巧
2018/09/12 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python中的Numpy入门教程
2014/04/26 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
python关于变量名的基础知识点
2020/03/03 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
棉花姑娘教学反思
2014/02/15 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
干部考核工作总结
2015/08/12 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python