内容评论标签的风格制作

评论的标签如下:

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

评论涉及到的元素有

{posturl} 这个是代表POST评论内容到哪个网址

{pageurl} 这个是代表显示更多页评论的地址

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

内容评论标签的风格制作 - 图1

其中

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

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

面下面这个就是评论按钮

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

这里有一个点击事件 post_commentPc()

他是JS处理评论事件

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

  1. <script type="text/javascript">
  2. var posturl = "{posturl}"; //POST数据到指定网址
  3. var commentpage = 1; //默认显示第一页的数据
  4. var havepost = false; //做个标志,不要重复提交数据
  5. //POST评论内容
  6. function post_commentPc(){
  7. if(havepost===true){
  8. layer.alert("请不要重复提交数据");
  9. return ;
  10. }
  11. var contents = $('#comment_content').val(); //获取评论内容
  12. if(contents==''){
  13. layer.alert("请输入评论内容!");
  14. }else{
  15. havepost = true; //做个标志,不要重复提交
  16. $.post(
  17. posturl, //提交到指定网址
  18. {content:contents}, //提交的评论内容
  19. function(res,status){
  20. if(res.code==0){ //评论成功
  21. $('#comment_content').val(''); //清空评论区的内容
  22. $('#show_comment').html(res.data); //把返回的新的评论数据重新显示在网页上
  23. commentpage = 1; //恢复到第一页
  24. layer.msg('发表成功!');
  25. HiddenShowMoreComment(); //这里统计是否有分页,这个可删除
  26. }else{ //评论失败
  27. layer.alert('评论发表失败:'+res.msg);
  28. }
  29. havepost = false; //允许再次发表评论
  30. }
  31. );
  32. }
  33. }
  34. </script>

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

  1. <div class="PostComment">
  2. <div class="head">我要留言</div>
  3. <dl>
  4. <dt>内容:</dt>
  5. <dd>
  6. <textarea name="textfield" id="comment_content"></textarea>
  7. </dd>
  8. </dl>
  9. <div class="sub">
  10. <input type="button" name="Submit" value="发表留言" onclick="post_commentPc()">
  11. </div>
  12. </div>
  13. <script type="text/javascript">
  14. var posturl = "{posturl}"; //POST数据到指定网址
  15. var commentpage = 1; //默认显示第一页的数据
  16. var havepost = false; //做个标志,不要重复提交数据
  17. //POST评论内容
  18. function post_commentPc(){
  19. if(havepost===true){
  20. layer.alert("请不要重复提交数据");
  21. return ;
  22. }
  23. var contents = $('#comment_content').val(); //获取评论内容
  24. if(contents==''){
  25. layer.alert("请输入评论内容!");
  26. }else{
  27. havepost = true; //做个标志,不要重复提交
  28. $.post(
  29. posturl, //提交到指定网址
  30. {content:contents}, //提交的评论内容
  31. function(res,status){
  32. if(res.code==0){ //评论成功
  33. $('#comment_content').val(''); //清空评论区的内容
  34. $('#show_comment').html(res.data); //把返回的新的评论数据重新显示在网页上
  35. commentpage = 1; //恢复到第一页
  36. layer.msg('发表成功!');
  37. HiddenShowMoreComment(); //这里统计是否有分页,这个可删除
  38. }else{ //评论失败
  39. layer.alert('评论发表失败:'+res.msg);
  40. }
  41. havepost = false; //允许再次发表评论
  42. }
  43. );
  44. }
  45. }
  46. </script>

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

内容评论标签的风格制作 - 图2

代码如下:

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

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

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

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

  1. <div class="ShowComment">
  2. <div class="head">用户留言</div>
  3. <div id="show_comment">
  4. {volist name="listdb" id="rs"}
  5. <div class="ListComment">
  6. <dl>
  7. <dt><a href="{:get_url('user',$rs.uid)}" target="_blank"><img src="{$rs.icon}" onerror="this.src='__STATIC__/images/nobody.gif'"></a></dt>
  8. <dd>{$rs.content}</dd>
  9. </dl>
  10. <div class="moreinfo">
  11. 称呼:{$rs.username} 日期:{$rs.time}
  12. <A HREF="#">删除</A>
  13. </div>
  14. </div>
  15. {/volist}
  16. </div>
  17. <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>
  18. </div>
  19. <br>
  20. <script type="text/javascript">
  21. //显示更多数据
  22. function Show_MoreComment(){
  23. commentpage++;
  24. $.get('{pageurl}?page='+commentpage,function(res){
  25. if(res.code==0){
  26. if(res.data==''){
  27. layer.msg('显示完了!');
  28. $('.ShowMoreComment button').hide();;
  29. }else{
  30. $('#show_comment').append(res.data); //更多评论数据调用成功,追加显示
  31. }
  32. }else{
  33. layer.msg(res.msg,{time:2500});
  34. }
  35. });
  36. }
  37. //判断是否有更多页数据
  38. function HiddenShowMoreComment(){
  39. var Comments=$('#show_comment .ListComment').length;
  40. if(parseInt(Comments/{$cfg_array.rows})<1){
  41. $('.ShowMoreComment').hide();
  42. }else{
  43. $('.ShowMoreComment').show();
  44. }
  45. }
  46. HiddenShowMoreComment();
  47. </script>

评论的完整代码如下

  1. <div class="PostComment">
  2. <div class="head">我要留言</div>
  3. <dl>
  4. <dt>内容:</dt>
  5. <dd>
  6. <textarea name="textfield" id="comment_content"></textarea>
  7. </dd>
  8. </dl>
  9. <div class="sub">
  10. <input type="button" name="Submit" value="发表留言" onclick="post_commentPc()">
  11. </div>
  12. </div>
  13. <script type="text/javascript">
  14. var posturl = "{posturl}"; //POST数据到指定网址
  15. var commentpage = 1; //默认显示第一页的数据
  16. var havepost = false; //做个标志,不要重复提交数据
  17. //POST评论内容
  18. function post_commentPc(){
  19. if(havepost===true){
  20. layer.alert("请不要重复提交数据");
  21. return ;
  22. }
  23. var contents = $('#comment_content').val(); //获取评论内容
  24. if(contents==''){
  25. layer.alert("请输入评论内容!");
  26. }else{
  27. havepost = true; //做个标志,不要重复提交
  28. $.post(
  29. posturl, //提交到指定网址
  30. {content:contents}, //提交的评论内容
  31. function(res,status){
  32. if(res.code==0){ //评论成功
  33. $('#comment_content').val(''); //清空评论区的内容
  34. $('#show_comment').html(res.data); //把返回的新的评论数据重新显示在网页上
  35. commentpage = 1; //恢复到第一页
  36. layer.msg('发表成功!');
  37. HiddenShowMoreComment(); //这里统计是否有分页,这个可删除
  38. }else{ //评论失败
  39. layer.alert('评论发表失败:'+res.msg);
  40. }
  41. havepost = false; //允许再次发表评论
  42. }
  43. );
  44. }
  45. }
  46. </script>
  47. <div class="ShowComment">
  48. <div class="head">用户留言</div>
  49. <div id="show_comment">
  50. {volist name="listdb" id="rs"}
  51. <div class="ListComment">
  52. <dl>
  53. <dt><a href="{:get_url('user',$rs.uid)}" target="_blank"><img src="{$rs.icon}" onerror="this.src='__STATIC__/images/nobody.gif'"></a></dt>
  54. <dd>{$rs.content}</dd>
  55. </dl>
  56. <div class="moreinfo">
  57. 称呼:{$rs.username} 日期:{$rs.time}
  58. <A HREF="#">删除</A>
  59. </div>
  60. </div>
  61. {/volist}
  62. </div>
  63. <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>
  64. </div>
  65. <br>
  66. <script type="text/javascript">
  67. //显示更多数据
  68. function Show_MoreComment(){
  69. commentpage++; //第几页
  70. $.get('{pageurl}?page='+commentpage,function(res){
  71. if(res.code==0){
  72. if(res.data==''){
  73. layer.msg('显示完了!');
  74. $('.ShowMoreComment button').hide();;
  75. }else{
  76. $('#show_comment').append(res.data); //更多评论数据调用成功,追加显示
  77. }
  78. }else{
  79. layer.msg(res.msg,{time:2500});
  80. }
  81. });
  82. }
  83. //判断是否有更多页数据 , 并不重要
  84. function HiddenShowMoreComment(){
  85. var Comments=$('#show_comment .ListComment').length;
  86. if(parseInt(Comments/{$cfg_array.rows})<1){
  87. $('.ShowMoreComment').hide();
  88. }else{
  89. $('.ShowMoreComment').show();
  90. }
  91. }
  92. HiddenShowMoreComment();
  93. </script>