PHP+Mysql+jQuery实现动态展示信息


Posted in PHP onOctober 08, 2011

在本站前面有文章介绍了如何实现发表微博说说:PHP+Mysql+jQuery实现发布微博程序--jQuery篇,本例将基于其数据库结构,用动态的方式展示发表的说说信息。

查看示例:DEMO

XHTML
<div id="demo"> 
<div class="saylist"> 
<a href="#"><img src="images/0.jpg" width="50" height="50" alt="demo" /></a> 
<div class="saytxt"> 
<p><strong><a href="https://3water.com">Shuro</a></strong><span> 
8分钟前</span> 说:</p> 
<div class="say">评论内容。。。</div> 
</div> 
</div> 
... 
</div>

上述HTML结构由N个.saylist构成,用于展示用户的评论信息,当然在本例中,将由PHP负责生成这段XHTML代码。
CSS
#demo{width:400px; height:80px; margin:80px auto; border-bottom:1px dotted #d3d3d3} 
.saylist{margin:8px auto; height:80px; padding:4px 0;} 
.saylist img{float:left; width:50px; margin:4px} 
.saytxt{float:right; width:320px; overflow:hidden} 
.saytxt p{line-height:18px} 
.saytxt p strong{margin-right:6px} 
.saytxt p span{color:#999} 
.say{margin-top:3px; font-size:14px; font-weight:bold}

使用上述CSS渲染HTML外观,当然你也可以自己定制你喜欢的外观样式。
PHP
在function.php中有两个函数,formatSay()用来输出用户评论列表,即输出上文中的HTML。
function formatSay($say,$dt,$uid){ 
$say=htmlspecialchars(stripslashes($say)); 
return' 
<div class="saylist"><a href="#"><img src="images/'.$uid.'.jpg" width="50" 
height="50" alt="demo" /></a> 
<div class="saytxt"> 
<p><strong><a href="#">demo_'.$uid.'</a></strong> <span>'.tranTime($dt).'</span> 说: 
</p><div class="say">'.$say.'</div> 
</div> 
<div class="clear"></div> 
</div>'; 
}

时间轴函数tranTime()将时间转换成如“1小时前”的格式,详情可阅读本站文章:PHP实现时间轴函数
function tranTime($stime) { 
$rtime = date("m-d H:i",$stime); 
$htime = date("H:i",$stime); 
$day_time = date("j",$stime); 
$today=date("j",time()); 
$ds = $today - $day_time; 
$time = time() - $stime; 
if ($time < 60) { 
$str = '刚刚'; 
} 
elseif ($time < 60 * 60) { 
$min = floor($time/60); 
$str = $min.'分钟前'; 
} 
elseif ($time < 60 * 60 * 24) { 
$h = floor($time/(60*60)); 
$str = $h.'小时前 '.$htime; 
if($ds==1) 
$str = '昨天 '.$rtime; 
} 
elseif ($time < 60 * 60 * 24 * 2) { 
$str = '昨天 '.$rtime; 
if($ds==2) 
$str = '前天 '.$rtime; 
}elseif($time < 60 * 60 * 24 * 3){ 
$str = '前天 '.$rtime; 
if($ds>2) 
$str = $rtime; 
} 
else { 
$str = $rtime; 
} 
return $str; 
}

然后在index.php中调用funciton.php,并连接MySQL数据库输出评论列表。
require_once('connect.php'); //连接数据库文件 
require_once('function.php'); //函数文件 
$query=mysql_query("select * from say order by id desc limit 0,15"); 
while ($row=mysql_fetch_array($query)) { 
$sayList.=formatSay($row[content],$row[addtime],$row[userid]); 
}

在div#demo中输出评论列表。
<div id="demo"> 
<?php echo $sayList;?> 
</div>

这样一来,运行index.php会出现一个列表,我们只需要一条一条展示,下面就需要jQuery来办了。
jQuery
$(function(){ 
//除了显示第一个saylist,其他的都隐藏 
$(".saylist").hide().eq(0).show(); 
//自循环函数,循环展示信息 
(function showNextSay(){ 
//每条信息展示7.5秒 
$(".saylist:visible").delay(7500).fadeOut("slow",function(){ 
$(this).appendTo("#demo"); 
//展示下一条 
$(".saylist:first").fadeIn("slow",function(){ 
//再次调用函数 
showNextSay(); 
}); 
}); 
})(); 
});
PHP 相关文章推荐
非常好的php目录导航文件代码
Oct 09 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
php发送http请求的常用方法分析
Nov 08 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
PHP 无限级分类
May 04 PHP
php文件后缀不强制为.php的实操方法
Sep 18 PHP
PHP类的自动加载与命名空间用法实例分析
Jun 05 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 #PHP
php实现用户在线时间统计详解
Oct 08 #PHP
php 文件缓存函数
Oct 08 #PHP
php数字转汉字代码(算法)
Oct 08 #PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 #PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 #PHP
PHP下判断网址是否有效的代码
Oct 08 #PHP
You might like
基于pear auth实现登录验证
2010/02/26 PHP
php UBB 解析实现代码
2011/11/27 PHP
帝国cms目录结构分享
2015/07/06 PHP
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
python文件操作整理汇总
2014/10/21 Python
使用grappelli为django admin后台添加模板
2014/11/18 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
python使用KNN算法识别手写数字
2019/04/25 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
django rest framework使用django-filter用法
2020/07/15 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
售后服务承诺书怎么写
2014/05/21 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
法定代表人授权委托书
2014/09/19 职场文书
跳高加油稿
2015/07/21 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
Python 视频画质增强
2022/04/28 Python