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逐行输出(ob_flush与flush的组合)
Feb 04 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
分享PHP守护进程类
Dec 30 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
php mysql 封装类实例代码
Sep 18 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 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
php递归遍历删除文件的方法
2015/04/17 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
python实现猜拳游戏
2020/03/04 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
学生感冒英文请假条
2014/02/04 职场文书
药店主任岗位责任制
2014/02/10 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
市场总监岗位职责
2015/02/11 职场文书
财政局个人总结
2015/03/04 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
Python读取和写入Excel数据
2022/04/20 Python
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript