• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP怎么实现评论回复功能

PHP怎么实现评论回复功能

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP评论,评论回复,PHP盖楼评论等相关知识,希望对您有所帮助

php实现评论回复功能的方法:1、进行数据表设计;2、通过递归获取评论列表;3、展示评论页面的action;4、展示页面的整体结构设计;5、创建单个评论信息p结构代码;6、设置回复评论的a标签按钮样式。


PHP怎么实现评论回复功能


php怎么实现评论回复功能?

php无限级分类实现评论及回复功能

经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很容易想到运用无限级分类技术存储数据,运用递归获取评论层级结构数据,运用ajax实现评论页面交互,这里用thinkphp框架做个简单的demo练练手,为了简化流程这里第三级评论开始停止回复,当然只要在这个基础上稍作修改就可以实现无限回复功能,主要是view层样式修改较麻烦,需花些时间。

一、效果需求分析:

1、在头部可以直接发布一级评论,最新发表的评论显示在最上面,如下效果图


PHP怎么实现评论回复功能


2、对发表的评论可以回复,回复显示在上级评论下边,形成层级关系,如下效果图


PHP怎么实现评论回复功能


3、页面操作细节:点击某个评论的回复按钮时,显示回复文本输入框,同时其他评论的回复文本输入框消失,当再次点击该回复按钮时,该文本框消失

4、在最后一级评论(这里设置是第三级)关闭回复功能

5、即时显示评论总数


二、实现思路及细节

1、数据表设计


PHP怎么实现评论回复功能


2、controller层关键函数:

(1)、递归获取评论列表

/** *递归获取评论列表 */protected function getCommlist($parent_id = 0,&$result = array()){     $arr = M('comment')->where("parent_id = '".$parent_id."'")->order("create_time desc")->select();     if(empty($arr)){        return array();    }    foreach ($arr as $cm) {         $thisArr=&$result[];        $cm["children"] = $this->getCommlist($cm["id"],$thisArr);         $thisArr = $cm;         }    return $result;}

(2)、展示评论页面的action

public function index(){     $num = M('comment')->count(); //获取评论总数    $this->assign('num',$num);    $data=array();    $data=$this->getCommlist();//获取评论列表    $this->assign("commlist",$data);    $this->display('index');}

(3)、评论页面ajax访问添加评论的action

/** *添加评论 */public function addComment(){      $data=array();    if((isset($_POST["comment"]))&&(!empty($_POST["comment"]))){        $cm = json_decode($_POST["comment"],true);//通过第二个参数true,将json字符串转化为键值对数组        $cm['create_time']=date('Y-m-d H:i:s',time());        $newcm = M('comment');        $id = $newcm->add($cm);             $cm["id"] = $id;        $data = $cm;             $num = M('comment')->count();//统计评论总数        $data['num']= $num;     }else{        $data["error"] = "0";    }     echo json_encode($data); }

3、view层实现

(1)、展示页面的整体结构设计


PHP怎么实现评论回复功能

实际效果:

PHP怎么实现评论回复功能


页面html代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">    <title>php无限级分类实战————评论及回复功能</title>    <link rel="stylesheet" type="text/css" href="/Public/css/comment.css" rel="external nofollow" >    <script type="text/javascript" src="/Public/js/jquery-1.11.3.min.js" ></script>    <script type="text/javascript" src="/Public/js/comment.js" ></script></head><body> <p>    <!--发表评论区begin-->    <p>        <p><span>{$num}条评论</span></p>        <p>            <p><textarea replyid="0"></textarea></p>            <p>                <a parent_id="0" style="" href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><span style=''>发表评论</span></a>            </p>         </p>    </p>    <!--发表评论区end-->    <!--评论列表显示区begin-->    <!-- {$commentlist} -->    <p >        <p><span>全部评论</span></p>      &n
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP怎么实现评论回复功能

相关文章

  • vue.js如何实现列表滚动循环
  • Photoshop制作超逼真缝线效果
  • 详解Angular中的NgModule(模块)
  • 一分钟介绍WordPress文章怎么添加排序选项
  • 详解PHP中的addcslashes()函数
  • UEditor新增自定义按钮/UEditor增加自定义插件
  • DedeCMS使用sql语句获取文章链接地址
  • 一文浅析Angular中的响应式表单
  • PHPcms v9调用热门文章的两种方法
  • 最新PTCMS 14个采集规则

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Photoshop制作可口的饼干艺术字教程
    • Workerman中你不得不知道的属性reusePort
    • Photoshop制作个性的透明玻璃效果牌
    • Javascript中window.close如何不提示弹窗
    • Photoshop利用通道及滤镜制作放射光束
    • JavaScript中字符串(string)如何转json
    • 详解PHP如何高效导出Excel(CSV)
    • WordPress使用OSS Upload后媒体库无法加载一直转圈解决方法
    • 深入浅析Bootstrap中的自动定位浮标
    • CDR绘制木纹质感APP图标

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有