评论的标签如下:

{qb:comment name="xxxxx" rows='5'}
HTML代码片段
{/qb:comment}

评论涉及到的元素有
{posturl} 这个是代表POST评论内容到哪个网址
{pageurl} 这个是代表显示更多页评论的地址

基本流程, 一个是评论区的内容. 一个是提交按钮.一个是数据提交处理事件

其中

<textarea name="textfield" id="comment_content"></textarea>

这个是评论区的内容. 这里的元素有一个 id="comment_content" 方便JS事件获取里边的内容

面下面这个就是评论按钮

<input type="button" name="Submit" value="发表留言" onclick="post_commentPc()">

这里有一个点击事件 post_commentPc()
他是JS处理评论事件

下面这段就是表单POST的JS处理事件

<script type="text/javascript">
var posturl = "{posturl}"; //POST数据到指定网址
var commentpage = 1; //默认显示第一页的数据
var havepost = false; //做个标志,不要重复提交数据 //POST评论内容
function post_commentPc(){
if(havepost===true){
layer.alert("请不要重复提交数据");
return ;
}
var contents = $('#comment_content').val(); //获取评论内容
if(contents==''){
layer.alert("请输入评论内容!");
}else{
havepost = true; //做个标志,不要重复提交
$.post(
posturl, //提交到指定网址
{content:contents}, //提交的评论内容
function(res,status){
if(res.code==0){ //评论成功
$('#comment_content').val(''); //清空评论区的内容
$('#show_comment').html(res.data); //把返回的新的评论数据重新显示在网页上
commentpage = 1; //恢复到第一页
layer.msg('发表成功!');
HiddenShowMoreComment(); //这里统计是否有分页,这个可删除
}else{ //评论失败
layer.alert('评论发表失败:'+res.msg);
}
havepost = false; //允许再次发表评论
}
);
}
}
</script>

发表评论这一块的完整代码如下:

        <div class="PostComment">
<div class="head">我要留言</div>
<dl>
<dt>内容:</dt>
<dd>
<textarea name="textfield" id="comment_content"></textarea>
</dd>
</dl>
<div class="sub">
<input type="button" name="Submit" value="发表留言" onclick="post_commentPc()">
</div>
</div>
<script type="text/javascript">
var posturl = "{posturl}"; //POST数据到指定网址
var commentpage = 1; //默认显示第一页的数据
var havepost = false; //做个标志,不要重复提交数据 //POST评论内容
function post_commentPc(){
if(havepost===true){
layer.alert("请不要重复提交数据");
return ;
}
var contents = $('#comment_content').val(); //获取评论内容
if(contents==''){
layer.alert("请输入评论内容!");
}else{
havepost = true; //做个标志,不要重复提交
$.post(
posturl, //提交到指定网址
{content:contents}, //提交的评论内容
function(res,status){
if(res.code==0){ //评论成功
$('#comment_content').val(''); //清空评论区的内容
$('#show_comment').html(res.data); //把返回的新的评论数据重新显示在网页上
commentpage = 1; //恢复到第一页
layer.msg('发表成功!');
HiddenShowMoreComment(); //这里统计是否有分页,这个可删除
}else{ //评论失败
layer.alert('评论发表失败:'+res.msg);
}
havepost = false; //允许再次发表评论
}
);
}
}
</script>

下面这个图是显示评论内容的处理

代码如下:
id="show_comment" 给DIV定义一个容器存放更多页的评论显示

{volist name="listdb" id="rs"} 代码段 {/volist} 这里是把默认第一页的评论循环显示出来

onclick="Show_MoreComment()" 这个是点击事件,显示更多评论

{pageurl} 这个是评论更多数据的调用地址

        <div class="ShowComment">
<div class="head">用户留言</div>
<div id="show_comment">
{volist name="listdb" id="rs"}
<div class="ListComment">
<dl>
<dt><a href="{:get_url('user',$rs.uid)}" target="_blank"><img src="{$rs.icon}" onerror="this.src='__STATIC__/images/nobody.gif'"></a></dt>
<dd>{$rs.content}</dd>
</dl>
<div class="moreinfo">
称呼:{$rs.username} 日期:{$rs.time}
<A HREF="#">删除</A>
</div>
</div>
{/volist}
</div>
<div class="ShowMoreComment" style="text-align:center;margin:10px;"><button style="padding:8px;background:Orange;border:1px solid #fff;color:#fff;" type="butter" onclick="Show_MoreComment()">更多评论 <i class="fa fa-angle-double-down"></i></button></div>
</div>
<br> <script type="text/javascript">
//显示更多数据
function Show_MoreComment(){
commentpage++;
$.get('{pageurl}?page='+commentpage,function(res){
if(res.code==0){
if(res.data==''){
layer.msg('显示完了!');
$('.ShowMoreComment button').hide();;
}else{
$('#show_comment').append(res.data); //更多评论数据调用成功,追加显示
}
}else{
layer.msg(res.msg,{time:2500});
}
});
} //判断是否有更多页数据
function HiddenShowMoreComment(){
var Comments=$('#show_comment .ListComment').length;
if(parseInt(Comments/{$cfg_array.rows})<1){
$('.ShowMoreComment').hide();
}else{
$('.ShowMoreComment').show();
}
} HiddenShowMoreComment();
</script>

评论的完整代码如下

        <div class="PostComment">
<div class="head">我要留言</div>
<dl>
<dt>内容:</dt>
<dd>
<textarea name="textfield" id="comment_content"></textarea>
</dd>
</dl>
<div class="sub">
<input type="button" name="Submit" value="发表留言" onclick="post_commentPc()">
</div>
</div>
<script type="text/javascript">
var posturl = "{posturl}"; //POST数据到指定网址
var commentpage = 1; //默认显示第一页的数据
var havepost = false; //做个标志,不要重复提交数据 //POST评论内容
function post_commentPc(){
if(havepost===true){
layer.alert("请不要重复提交数据");
return ;
}
var contents = $('#comment_content').val(); //获取评论内容
if(contents==''){
layer.alert("请输入评论内容!");
}else{
havepost = true; //做个标志,不要重复提交
$.post(
posturl, //提交到指定网址
{content:contents}, //提交的评论内容
function(res,status){
if(res.code==0){ //评论成功
$('#comment_content').val(''); //清空评论区的内容
$('#show_comment').html(res.data); //把返回的新的评论数据重新显示在网页上
commentpage = 1; //恢复到第一页
layer.msg('发表成功!');
HiddenShowMoreComment(); //这里统计是否有分页,这个可删除
}else{ //评论失败
layer.alert('评论发表失败:'+res.msg);
}
havepost = false; //允许再次发表评论
}
);
}
}
</script>
<div class="ShowComment">
<div class="head">用户留言</div>
<div id="show_comment">
{volist name="listdb" id="rs"}
<div class="ListComment">
<dl>
<dt><a href="{:get_url('user',$rs.uid)}" target="_blank"><img src="{$rs.icon}" onerror="this.src='__STATIC__/images/nobody.gif'"></a></dt>
<dd>{$rs.content}</dd>
</dl>
<div class="moreinfo">
称呼:{$rs.username} 日期:{$rs.time}
<A HREF="#">删除</A>
</div>
</div>
{/volist}
</div>
<div class="ShowMoreComment" style="text-align:center;margin:10px;"><button style="padding:8px;background:Orange;border:1px solid #fff;color:#fff;" type="butter" onclick="Show_MoreComment()">更多评论 <i class="fa fa-angle-double-down"></i></button></div>
</div>
<br> <script type="text/javascript">
//显示更多数据
function Show_MoreComment(){
commentpage++; //第几页
$.get('{pageurl}?page='+commentpage,function(res){
if(res.code==0){
if(res.data==''){
layer.msg('显示完了!');
$('.ShowMoreComment button').hide();;
}else{
$('#show_comment').append(res.data); //更多评论数据调用成功,追加显示
}
}else{
layer.msg(res.msg,{time:2500});
}
});
} //判断是否有更多页数据 , 并不重要
function HiddenShowMoreComment(){
var Comments=$('#show_comment .ListComment').length;
if(parseInt(Comments/{$cfg_array.rows})<1){
$('.ShowMoreComment').hide();
}else{
$('.ShowMoreComment').show();
}
} HiddenShowMoreComment();
</script>

齐博x1内容评论标签的风格制作的更多相关文章

  1. 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)

    password 密码类型 和text一样,只不过type类型是password,密码类型输入时,显示星号.即Html中的密码框类型 icon 字体图标类型 和列表页一样,把css的字体图标引入到了表 ...

  2. 齐博x1内容页中下一页上一页的标签

    在模板中分别插入如下代码即可 前一页 {:fun('content@prev',$info,20)} 后一页 {:fun('content@next',$info,20)} 复制 其中20代表取标题多 ...

  3. 齐博x1文本代码标签的使用

    文本标签虽然简单,但是使用的地方确实非常多的. {qb:tag name="XXXX" type="text"}推荐新闻{/qb:tag} 类似这种使用的频率是 ...

  4. 齐博x1动态改变标签调用不同频道的数据

    标签默认需要设置标签参数 type 指定调用哪个频道的数据,比如下面的代码,需要默认指定商城的数据, {qb:tag name="qun_pcshow_shop001" type= ...

  5. 齐博x1当前URL标签

    当前URL标签 {:get_url('location')} 当前URL的二维码标签 {:urls('index/qrcode/index')}?url={:urlencode(get_url('lo ...

  6. 齐博x1到底是怎么的存在?

    齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. 系统已经对接好QQ.微信登录,同 ...

  7. 齐博X1到底是个什么鬼?

    什么是齐博/齐博CMS之X1? 齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. ...

  8. 齐博x1齐博首创钩子的使用方法

    齐博X1有两套钩子体系,第一套是基于TP思路设计的.跟外面的大同小异.现在重点讲一下第二套我们首创的使用方法. 首先说一下如何埋钩子,这个跟TP思路的钩子类似,就是在页面的任何地方加入如下代码即可如下 ...

  9. 最近无聊搭建一个齐博X1的下载页面

    https://layui.wanxiangsucai.com/ 用layui官方镜像站的模版 改了个齐博X1的下载页面 https://x1.wanxiangsucai.com/ 哈哈哈!!! 还有 ...

随机推荐

  1. Chapter 02 - Let's Get Started(C#篇)

    详细解释,书上有哈.直接上代码和结果. Xcode下的自定义类 (通过new file-> cocoa class创建,保持和书中名字一样RandomController),自定义的fields ...

  2. PerfView专题 (第一篇):如何寻找热点函数

    一:背景 准备开个系列来聊一下 PerfView 这款工具,熟悉我的朋友都知道我喜欢用 WinDbg,这东西虽然很牛,但也不是万能的,也有一些场景他解决不了或者很难解决,这时候借助一些其他的工具来辅助 ...

  3. 如何构建 Apache DolphinScheduler 的 Docker 镜像

    继昨日发布第一个 [官方 Docker 镜像] 后,有几位小伙伴私信想自己进行编译,这里也将 Docker 的主要贡献者文禾同学整理的文档进行分享.以下是全文内容: 您能够在类 Unix 系统和 Wi ...

  4. 【常见】CSS3进度条Loading动画

    现在,GIF 格式的进度条已经越来越少,CSS 进度条如雨后春笋般涌现.CSS3的崛起,更使得动态效果得以轻松实现,未来,必定是CSS3的天下,所以今天我就来分享一下几个常见的CSS3进度条Loadi ...

  5. LuoguP5201 [USACO19JAN]Shortcut(最短路树)

    字典序?建树时从小枚举,用\(Dijkstra\)的血泪建好树,\(size\)大小决定贡献 #include <iostream> #include <cstdio> #in ...

  6. CPU性能优化干货总结

    一.背景 部门成立专项组,对数智平台和站务系统做性能优化,其中目标之一为降低服务端硬件成本,即在32G内存.CPU银牌的配置下,能支撑1万+发客量.要达到此目标,需通过压力测试并配合监控系统,以QPS ...

  7. Github文件在线加速下载

    众所周知,GitHub是一个巨大的开源宝库,以及程序员和编程爱好者的聚集地,诸多优秀的开源项目全部都是位于GitHub上.但是每当我们看到优秀的开源项目,准备去下(bai)载(piao)时,会发现速度 ...

  8. 痞子衡嵌入式:MCUXpresso IDE下设置代码编译优化等级的几种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下设置代码编译优化等级的几种方法. 最近公司芯片设计团队正在开发一款全新的基于 Cortex-M33 内核的 ...

  9. 【java】学习路线15-接口interface、匿名内部类、接口继承

    class Learn03{    public static void main(String[] aa){        A b = new B(); //接口也可以用多态        b.me ...

  10. 自定义View4-塔防小游戏第一篇:一个防御塔+多个野怪(简易版)*

    塔防小游戏 第一篇:一个防御塔+多个野怪(简易版)    1.canvas画防御塔,妖怪大道,妖怪行走路线    2.防御塔攻击范围是按照妖怪与防御塔中心距离计算的,大于防御塔半径则不攻击,小于则攻击 ...