【TP5】对于广告分类跟搜索的解决方案

举报
原来是咔咔 发表于 2022/03/27 00:41:51 2022/03/27
【摘要】 author:咔咔 wechat:fangkangfk 需求:点击广告分类,在点击查询,需要查询本分类下的广告 首先我们需要固定的就是样式问题 第一次进入的时候显示的是全部的广告,那么我们的全部广告就需要被点击的样式,所以我们直接就给全部广告加了一个checked 点击全部广告是不需要条件的,所有地址没有追...

author:咔咔

wechat:fangkangfk

需求:点击广告分类,在点击查询,需要查询本分类下的广告

首先我们需要固定的就是样式问题

第一次进入的时候显示的是全部的广告,那么我们的全部广告就需要被点击的样式,所以我们直接就给全部广告加了一个checked

点击全部广告是不需要条件的,所有地址没有追加参数

点击其他的广告分类,带上各自在数据库的标识,然候使用参数传递给后台

同样后台也会接收这个参数,去数据库查询

由于是a链接跳转,所以我们使用addClass的方式是肯定不行的,这个时候就需要后台传递参数给前端,然候根据这个值进行判断点击的是那个

现在点击分类的业务处理好了,还需要处理查询时查询当下分类的数据

我们就需要在点击查询的form表单里边放置一个隐藏域,并且name值需要跟点击广告追加的参数名相同,这个隐藏域的value值,同样是不可以直接使用attr的方式添加,所以依然使用后台传递的方式

 

这样在点击查询的时候就会将这个条件带上

下来我们做一个测试

我们设置了俩条banner数据,但是标题不一样

 点击banner

查询kak

结果:

前端代码


  
  1. {include file="../../../application/admin/view/public/head" /}
  2. <style>
  3. .layui-badge-rim{
  4. margin: 0 30px;
  5. }
  6. .type{
  7. margin: 50px 50px 50px 10px;
  8. background-color: #009818;
  9. }
  10. .checked{
  11. background-color: #666;
  12. }
  13. </style>
  14. <form class="layui-form " method="post">
  15. {if condition="isset($showType)"}
  16. <a class="layui-btn mgl-20 type" attr="1" href="{:url('index')}"> 全部广告</a>
  17. <a class="layui-btn mgl-20 type {if condition='$showType eq 1'} checked {/if}" attr="1" href="{:url('index')}?showType=1"> Banner广告</a>
  18. <a class="layui-btn mgl-20 type {if condition='$showType eq 2'} checked {/if}" attr="2" href="{:url('index')}?showType=2"> 专题广告</a>
  19. <a class="layui-btn mgl-20 type {if condition='$showType eq 3'} checked {/if}" attr="3" href="{:url('index')}?showType=3"> 详情页广告</a>
  20. <a class="layui-btn mgl-20 type" attr="4" href="{:url('index')}"> 启动页广告</a>
  21. {else if}
  22. <a class="layui-btn mgl-20 type checked" attr="1" href="{:url('index')}"> 全部广告</a>
  23. <a class="layui-btn mgl-20 type" attr="1" href="{:url('index')}?showType=1"> Banner广告</a>
  24. <a class="layui-btn mgl-20 type " attr="2" href="{:url('index')}?showType=2"> 专题广告</a>
  25. <a class="layui-btn mgl-20 type " attr="3" href="{:url('index')}?showType=3"> 详情页广告</a>
  26. <a class="layui-btn mgl-20 type" attr="4" href="{:url('index')}"> 启动页广告</a>
  27. {/if}
  28. </form>
  29. <div class="page-container p10">
  30. <form class="layui-form " method="post" id="pageListForm">
  31. <div class="layui-input-inline w150">
  32. <div class="layui-btn-group">
  33. <a data-full="1" data-href="{:url('addBanner')}" class="layui-btn layui-btn-primary j-iframe"><i class="layui-icon">&#xe654;</i>添加广告</a>
  34. </div>
  35. </div>
  36. {if condition="isset($showType)"}
  37. <!--存放点击的类型-->
  38. <input type="hidden" id="showType" name="showType" value="{$showType}">
  39. {/if}
  40. <div class="layui-input-inline w150">
  41. <select name="vt_id" class="vt_id">
  42. <option value="">视频类型</option>
  43. {foreach name='subject' item='v'}
  44. {if condition="isset($param['vt_id'])"}
  45. <option {if condition="$param['vt_id'] eq $v['vt_id']"} selected {/if} value="{$v['vt_id']}" >{$v['vt_name']}</option>
  46. {else if /}
  47. <option value="{$v['vt_id']}" >{$v['vt_name']}</option>
  48. {/if}
  49. {/foreach}
  50. </select>
  51. </div>
  52. <div class="layui-input-inline">
  53. <input type="text" autocomplete="off" placeholder="请输入广告名" id="content" class="layui-input" name="b_title" value="{$param['b_title']?$param['b_title']:''}">
  54. </div>
  55. <button class="layui-btn mgl-20 .j-kaka" id="query"> 查询</button>
  56. <table class="layui-table" lay-size="sm">
  57. <thead>
  58. <tr >
  59. <th >ID</th>
  60. <th >标题</th>
  61. <th >分类</th>
  62. <th >对应视频名</th>
  63. <th >展示类型</th>
  64. <th >排序</th>
  65. <th >操作</th>
  66. </tr>
  67. </thead>
  68. {foreach name='bannerList' item='v'}
  69. <tr height="50">
  70. <th>{$v['b_id']}</th>
  71. <td>{$v['b_title']}</td>
  72. <td>{$v['banner_type']['vt_name']}</td>
  73. <td>{$v['banner_vs_video_name']['vi_title']}</td>
  74. {if condition="$v['b_showType'] eq 1"}
  75. <td>banner广告</td>
  76. {/if}
  77. {if condition="$v['b_showType'] eq 2"}
  78. <td>专题</td>
  79. {/if}
  80. {if condition="$v['b_showType'] eq 3"}
  81. <td>详情页</td>
  82. {/if}
  83. <td>{$v['b_sort']}</td>
  84. <td width="500">
  85. <a class="layui-badge-rim j-iframe" width="100" data-full="1" data-href="{:url('editBanner?b_id='.$v.b_id)}" href="javascript:;" title="编辑">编辑</a>
  86. <a class="layui-badge-rim del" data-id="{$v.b_id}" data-href="" href="javascript:;" title="删除">删除</a>
  87. </td>
  88. </tr>
  89. {/foreach}
  90. </table>
  91. </form>
  92. </div>
  93. <div id="pages" class="center"></div>
  94. {include file="../../../application/admin/view/public/foot" /}
  95. <script type="text/javascript">
  96. layui.use(['jquery',], function(args){
  97. var $= layui.jquery;
  98. $('.type').click(function () {
  99. var showType = $(this).attr('attr');
  100. alert(showType)
  101. $('#showType').val(showType);
  102. })
  103. });
  104. // 点击删除
  105. $(document).on('click','.del',function(){
  106. var that = $(this),
  107. href = !that.attr('data-href') ? that.attr('href') : that.attr('data-href');
  108. layer.confirm('删除之后无法恢复,您确定要删除吗?', {title:false, closeBtn:0}, function(index){
  109. if (!href) {
  110. layer.msg('请设置data-href参数');
  111. return false;
  112. }
  113. $.get(href, function(res){
  114. layer.msg(res.msg);
  115. if (res.code == 1) {
  116. that.parents('tr').remove();
  117. }
  118. });
  119. layer.close(index);
  120. });
  121. return false;
  122. })
  123. /**
  124. * 更改数据顺序
  125. */
  126. layui.use('laypage', function(){
  127. var laypage = layui.laypage
  128. , layer = layui.layer,
  129. $ = layui.$;
  130. $(document).on('blur','.sort',function(){
  131. var that = $(this),
  132. b_sort = that.val();
  133. var b_id = that.attr('b_id');
  134. $.post("{:url('banner/editSort')}",{b_sort:b_sort,b_id:b_id},function(res){
  135. if(res == 1){
  136. loadData()
  137. }
  138. });
  139. })
  140. });
  141. </script>
  142. </body>
  143. </html>

后台代码:


  
  1. /**
  2. * banner列表
  3. * @return array
  4. */
  5. public function index()
  6. {
  7. $param = $this->request->param();
  8. $where = [];
  9. if(!empty($param['vt_id'])){
  10. $where['vt_id'] = $param['vt_id'];
  11. }
  12. if(!empty($param['b_title'])){
  13. $where['b_title'] = ['like',"%".$param['b_title']."%"];
  14. }
  15. if(!empty($param['showType'])){
  16. $where['b_showType'] = $param['showType'];
  17. }
  18. if(!empty($param['vt_id']) && !empty($param['b_targetType']) && !empty($paran['b_title'])){
  19. $where = '1 = 1';
  20. }
  21. // banner列表
  22. $bannerList = $this->bannerModel->bannerList($where);
  23. // 类型
  24. $videoTypeList = Db::name($this->videoTypeModel->tableName)->select();
  25. if(!empty($param)){
  26. $this->assign('param',$param);
  27. }
  28. if(!empty($param['showType'])){
  29. $this->assign('showType',$param['showType']);
  30. }
  31. $this->assign([
  32. 'subject' => $videoTypeList,
  33. 'bannerList' => $bannerList,
  34. ]);
  35. return $this->fetch();
  36. }

文章来源: blog.csdn.net,作者:咔咔-,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/fangkang7/article/details/85323349

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。