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

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

image.png

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

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

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

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

屏幕快照 2022-05-12 下午10.42.18.png屏幕快照 2022-05-12 下午10.42.29.png屏幕快照 2022-05-12 下午10.42.39.png

前端代码:

{include file="../../../application/admin/view/public/head" /}
<style>
    .layui-badge-rim{
        margin: 0 30px;
    }
    .type{
        margin: 50px 50px 50px 10px;
        background-color: #009818;
    }
    .checked{
        background-color: #666;
    }
</style>
<form class="layui-form " method="post">
    {if condition="isset($showType)"}
    <a class="layui-btn mgl-20  type" attr="1" href="{:url('index')}"> 全部广告</a>
<a class="layui-btn mgl-20  type {if condition='$showType eq 1'} checked {/if}" attr="1" href="{:url('index')}?showType=1"> Banner广告</a>
<a class="layui-btn mgl-20  type {if condition='$showType eq 2'} checked {/if}" attr="2" href="{:url('index')}?showType=2"> 专题广告</a>
<a class="layui-btn mgl-20  type {if condition='$showType eq 3'} checked {/if}" attr="3" href="{:url('index')}?showType=3"> 详情页广告</a>
<a class="layui-btn mgl-20  type" attr="4" href="{:url('index')}"> 启动页广告</a>
    {else if}
    <a class="layui-btn mgl-20  type checked" attr="1" href="{:url('index')}"> 全部广告</a>
    <a class="layui-btn mgl-20  type" attr="1" href="{:url('index')}?showType=1"> Banner广告</a>
    <a class="layui-btn mgl-20  type " attr="2" href="{:url('index')}?showType=2"> 专题广告</a>
    <a class="layui-btn mgl-20  type " attr="3" href="{:url('index')}?showType=3"> 详情页广告</a>
    <a class="layui-btn mgl-20  type" attr="4" href="{:url('index')}"> 启动页广告</a>
    {/if}
</form>
<div class="page-container p10">
    <form class="layui-form " method="post" id="pageListForm">
        <div class="layui-input-inline w150">
            <div class="layui-btn-group">
                <a data-full="1" data-href="{:url('addBanner')}" class="layui-btn layui-btn-primary j-iframe"><i class="layui-icon">&#xe654;</i>添加广告</a>
            </div>
        </div>
        {if condition="isset($showType)"}
        <!--存放点击的类型-->
        <input type="hidden" id="showType" name="showType" value="{$showType}">
        {/if}
        <div class="layui-input-inline w150">
            <select name="vt_id" class="vt_id">
                <option value="">视频类型</option>
                {foreach name='subject' item='v'}
                {if condition="isset($param['vt_id'])"}
                <option {if condition="$param['vt_id'] eq $v['vt_id']"} selected {/if} value="{$v['vt_id']}"  >{$v['vt_name']}</option>
                {else if /}
                <option value="{$v['vt_id']}"  >{$v['vt_name']}</option>
                {/if}
                {/foreach}
            </select>
        </div>
        <div class="layui-input-inline">
            <input type="text" autocomplete="off" placeholder="请输入广告名" id="content" class="layui-input" name="b_title" value="{$param['b_title']?$param['b_title']:''}">
        </div>
        <button class="layui-btn mgl-20 .j-kaka" id="query"> 查询</button>
        <table class="layui-table" lay-size="sm">
        <thead>
            <tr >
                <th >ID</th>
                <th >标题</th>
                <th >分类</th>
                <th >对应视频名</th>
                <th >展示类型</th>
                <th >排序</th>
                <th >操作</th>
            </tr>
        </thead>
            {foreach name='bannerList' item='v'}
            <tr height="50">
                <th>{$v['b_id']}</th>
                <td>{$v['b_title']}</td>
                <td>{$v['banner_type']['vt_name']}</td>
                <td>{$v['banner_vs_video_name']['vi_title']}</td>
                {if condition="$v['b_showType'] eq 1"}
                <td>banner广告</td>
                {/if}
                {if condition="$v['b_showType'] eq 2"}
                <td>专题</td>
                {/if}
                {if condition="$v['b_showType'] eq 3"}
                <td>详情页</td>
                {/if}
                <td>{$v['b_sort']}</td>
                <td width="500">
                    <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>
                    <a class="layui-badge-rim del" data-id="{$v.b_id}" data-href="" href="javascript:;" title="删除">删除</a>
                </td>
            </tr>
            {/foreach}
        </table>
    </form>
</div>
<div id="pages" class="center"></div>
{include file="../../../application/admin/view/public/foot" /}
<script type="text/javascript">
    layui.use(['jquery',], function(args){
        var $= layui.jquery;
        $('.type').click(function () {
            var showType = $(this).attr('attr');
            alert(showType)
            $('#showType').val(showType);
        })
    });
    // 点击删除
    $(document).on('click','.del',function(){
        var that = $(this),
            href = !that.attr('data-href') ? that.attr('href') : that.attr('data-href');
        layer.confirm('删除之后无法恢复,您确定要删除吗?', {title:false, closeBtn:0}, function(index){
            if (!href) {
                layer.msg('请设置data-href参数');
                return false;
            }
            $.get(href, function(res){
                layer.msg(res.msg);
                if (res.code == 1) {
                    that.parents('tr').remove();
                }
            });
            layer.close(index);
        });
        return false;
    })
    /**
     * 更改数据顺序
     */
    layui.use('laypage', function(){
        var laypage = layui.laypage
            , layer = layui.layer,
            $ = layui.$;
        $(document).on('blur','.sort',function(){
            var that = $(this),
                b_sort = that.val();
            var b_id = that.attr('b_id');
            $.post("{:url('banner/editSort')}",{b_sort:b_sort,b_id:b_id},function(res){
                if(res == 1){
                    loadData()
                }
            });
        })
    });
</script>
</body>
</html>

后台代码:

    /**
     * banner列表
     * @return array
     */
    public function index()
    {
        $param = $this->request->param();
        $where = [];
        if(!empty($param['vt_id'])){
            $where['vt_id'] = $param['vt_id'];
        }
        if(!empty($param['b_title'])){
            $where['b_title'] = ['like',"%".$param['b_title']."%"];
        }
        if(!empty($param['showType'])){
            $where['b_showType'] = $param['showType'];
        }
        if(!empty($param['vt_id']) && !empty($param['b_targetType']) && !empty($paran['b_title'])){
            $where = '1 = 1';
        }
        // banner列表
        $bannerList = $this->bannerModel->bannerList($where);
        // 类型
        $videoTypeList = Db::name($this->videoTypeModel->tableName)->select();
        if(!empty($param)){
            $this->assign('param',$param);
        }
        if(!empty($param['showType'])){
            $this->assign('showType',$param['showType']);
        }
        $this->assign([
            'subject' => $videoTypeList,
            'bannerList' => $bannerList,
        ]);
        return $this->fetch();
    }
相关文章
|
5月前
|
语音技术 计算机视觉
|
6月前
|
缓存 应用服务中间件 API
FM全网自动采集聚合影视搜索源码
FM 全网聚合影视搜索(响应式布局),基于 TP5.1 开发的聚合影视搜索程序,本程序无数据库,本程序内置P2P 版播放器,承诺无广告无捆绑。片源内部滚动广告与本站无关,谨防上当受骗,资源搜索全部来自于网络。
102 1
|
7月前
|
弹性计算 监控 搜索推荐
全网关键词搜索趋势监控
【4月更文挑战第30天】
58 0
|
人工智能 自然语言处理 算法
Similarities:精准相似度计算与语义匹配搜索工具包,多维度实现多种算法,覆盖文本、图像等领域,支持文搜、图搜文、图搜图匹配搜索
Similarities:精准相似度计算与语义匹配搜索工具包,多维度实现多种算法,覆盖文本、图像等领域,支持文搜、图搜文、图搜图匹配搜索
Similarities:精准相似度计算与语义匹配搜索工具包,多维度实现多种算法,覆盖文本、图像等领域,支持文搜、图搜文、图搜图匹配搜索
|
关系型数据库 分布式数据库 数据库
沉浸式学习PostgreSQL|PolarDB 8: 电商|短视频|新闻|内容推荐业务(根据用户行为推荐相似内容)、监控预测报警系统(基于相似指标预判告警)、音视图文多媒体相似搜索、人脸|指纹识别|比对 - 向量搜索应用
1、在电商业务中, 用户浏览商品的行为会构成一组用户在某个时间段的特征, 这个特征可以用向量来表达(多维浮点数组), 同时商品、店铺也可以用向量来表达它的特征. 那么为了提升用户的浏览体验(快速找到用户想要购买的商品), 可以根据用户向量在商品和店铺向量中进行相似度匹配搜索. 按相似度来推荐商品和店铺给用户. 2、在短视频业务中, 用户浏览视频的行为, 构成了这个用户在某个时间段的兴趣特征, 这个特征可以用向量来表达(多维浮点数组), 同时短视频也可以用向量来表达它的特征. 那么为了提升用户的观感体验(推荐他想看的视频), 可以在短视频向量中进行与用户特征向量的相似度搜索.
328 0
|
机器学习/深度学习 数据采集 搜索推荐
技术解读 | 智能开放搜索CTR预估模型
本文介绍开放搜索CTR预估模型在个性化排序中的应用与实践
2390 2
|
存储 自然语言处理 搜索推荐
【转】关于搜索挖掘所想
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
139 0
|
Kubernetes 搜索推荐 Java
电子商务搜索基准
电子商务搜索基准是第一个具有个性化推荐的电子商务搜索系统的端到端应用基准。这项工作与詹建峰教授合作(http://www.benchcouncil.org/zjf.html)'的团队,他也是国际开放基准委员会(BenchCouncil,http://www.benchcouncil.org/)的主席。
电子商务搜索基准
|
自然语言处理 搜索推荐 算法
优化搜索排序结果从而“ 提升CTR、CVR业务指标”
搭建搜索功能不难,难的是如何提高搜索质量,帮助用户快速找到心中所想的内容或商品,那么搜索结果的相关性排序则是影响用户体验最关键的一环,本文通过阿里云开放搜索电商行业解决方案和大家聊一聊如何优化排序结果
6765 0
优化搜索排序结果从而“ 提升CTR、CVR业务指标”
|
自然语言处理 算法 知识图谱
电商搜索如何“想用户所想,提高搜索结果质量”?
本文针对电商搜索中如何“想用户所想,提高搜索结果质量”的问题进行剖析,并通过阿里云开放搜索电商行业解决方案和大家聊一聊如何优化解决~
3933 0
电商搜索如何“想用户所想,提高搜索结果质量”?