评论的标签如下:

{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. ASP.NET Core 6框架揭秘实例演示[32]:错误页面的集中呈现方式

    由于ASP.NET是一个同时处理多个请求的Web应用框架,所以在处理某个请求过程中出现异常并不会导致整个应用的中止.出于安全方面的考量,为了避免敏感信息外泄,客户端在默认情况下并不会得到详细的出错信息 ...

  2. 活动报名|对话贡献者:DolphinScheduler x Pulsar 在线 Meetup

    各位 DolphinScheduler 和 Pulsar 社区的小伙伴们,Apache DolphinScheduler x Pulsar 在线 Meetup 来啦! 导语 大数据任务调度.消息流的订 ...

  3. 它把RabbitMQ的复杂全屏蔽了,我朋友用它后被老板一夜提拔为.NET架构师

    本文技术源自外企,并已在多个世界500强大型项目开发中运用. 本文适合有初/中级.NET知识的同学阅读.(支持.NET/.NET Framework/.NET Core) RabbitMQ作为一款主流 ...

  4. HCIA-datacom 4.2 实验二:本地AAA配置实验

    关于本实验 AAA是Authentication(认证).Authorization(授权)和Accounting(计费)的简称,是网络安全的一种管理机制,提供了认证.授权.计费三种安全功能.这三种安 ...

  5. Java反射(重要)

    全文内容 1: 获取字节码文件对象的三种方式 2: 获取公有,私有方法,并调用构造方法,成员方法 3: 获取并调用私有成员变量 4: 如何为实例对象的成员变量赋值 5: 文末有一些注意 tea1类代码 ...

  6. Crash的数字表格 (莫比乌斯反演)

    Crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b ...

  7. 【JDBC】学习路径8-连接池

    为什么是连接池? 第一.受我们硬件资源的限制,我们的一些资源使用时有限制的比如我们的数据库 连接数和线程数.为了摆脱这些限制,我们就使用了池化技术来将这些资源限制在一定范围内. 第二.我们创建和销毁这 ...

  8. 批处理(bat)命令修改xml模板数据

    给定一个模板,然后通过bat修改某个节点中的值 模板如下: <?xml version="1.0" encoding="UTF-16"?> < ...

  9. day32-线程基础02

    线程基础02 3.继承Thread和实现Runnable的区别 从java的设计来看,通过继承Thread或者实现Runnable接口本身来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thre ...

  10. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...