PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

一键生成的关联category(类型表) 单选下拉框展示,对样式的优化

管理员 2024-12-14
Fastadmin
2

个人一时兴起发的贴子,不是什么高技术的,主要是针对有层级分类(没有层级就没事啦),请大家不好的地方多给给建议,谢谢!:grin: :grin:

(1、下面两张图分别是---(生成时的样子:以下为“图一”)以及(修改后的样式:以下为“图二”)
image.png
image.png

(2、个人有点小小的强迫哈!看着图一感觉就是不舒服一堆。图二相对就好多了,层级分明。开始解说盗用过程。
1、我要的效果就是参照就是 category(类型表)里面的 父级id(pid)的效果。所以我要先将页面 盗用过来

<div class="form-group">        <label for="c-pid" class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>        <div class="col-xs-12 col-sm-8">            <select id="c-pid" data-rule="required" class="form-control selectpicker" name="row[pid]">                {foreach name="parentList" item="vo"}                <option data-type="{$vo.type}" value="{$key}" {in name="key" value=""}selected{/in}>{$vo.name}</option>                {/foreach}            </select>        </div></div>

2、先找到现在模块需要进行修改的页面 并找出显示(示例:)

<div class="form-group">        <label class="control-label col-xs-12 col-sm-2">{:__('Category_id')}:</label>        <div class="col-xs-12 col-sm-8">            <input id="c-category_id" data-rule="required" data-source="category/selectpage" data-params='{"custom[type]":"nav"}' class="form-control selectpage" name="row[category_id]" type="text" value="{$row.category_id}">        </div></div>

然后对代码进行合并并对:id、name进行修改后如下

<div class="form-group">        <label class="control-label col-xs-12 col-sm-2">{:__('Category_id')}:</label>        <!--<div class="col-xs-12 col-sm-8">-->            <!--<input id="c-category_id" data-rule="required" data-source="category/selectpage" data-params='{"custom[type]":"nav"}' class="form-control selectpage" name="row[category_id]" type="text" value="">-->        <!--</div>-->        <div class="col-xs-12 col-sm-8">            <select id="c-category_id" data-rule="required" class="form-control selectpicker" name="row[category_id]">                {foreach name="parentList" item="vo"}                <option value="{$key}" {in name="key" value=""}selected{/in}>{$vo.name}</option>                {/foreach}            </select>        </div>    </div>

(3、页面修改完成后、对控制器进行修改,从html代码中可以看到分类的数据是的名称是parentList

{foreach name="parentList" item="vo"}

在category(类型表)控制其中可以看到对数据的应用是使用了

 $this->model = model('appcommonmodelCategory'); $tree = Tree::instance(); $tree->init(collection($this->model->order('weigh desc,id desc')->select())->toArray(), 'pid'); $this->categorylist = $tree->getTreeList($tree->getTreeArray(0), 'name'); $categorydata = [0 => ['type' => 'all', 'name' => __('None')]]; foreach ($this->categorylist as $k => $v) {    $categorydata[$v['id']] = $v; } $this->view->assign("parentList", $categorydata);

开始上面说了我是盗用用过来所有 要满足他自带的一些 数据才可以正常使用,对其修改后的代码
要给引入

use fastTree;

避免冲突

protected $model_cat = null;

然后_initialize(构造函数)代码后面在添加
我在语句添加了几个条件,个人可以按情况修改。

        $this->model_cat = model('appcommonmodelCategory');        $tree = Tree::instance();        $tree->init(collection($this->model_cat->order('weigh desc,id desc')->where(array("type"=>"nav","status"=>"normal"))->field(["id","name","type","flag","pid"])->select())->toArray(), 'pid');        $this->categorylist = $tree->getTreeList($tree->getTreeArray(0), 'name');        $categorydata =[];        foreach ($this->categorylist as $k => $v)        {            $categorydata[$v['id']] = $v;        }        $this->view->assign("parentList", $categorydata);
至于edit.html 主要多个参数 {in name="key" value="$row.category_id"}selected{/in}

就是添加于option 标签里面 用于修改的 默认 选择原来选择的数据

  <option value="{$key}" {in name="key" value="$row.category_id"}selected{/in}>{$vo.name}</option>

(4、最后保存运行就欧克啦!!!


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部