fastadmin后台 实现多选 数据自定义

添加

 <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Category_ids')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-category_ids" data-source="teacher/selectpage" data-field="name" data-primary-key="id"  data-multiple="true" class="form-control selectpage" name="row[category_ids]" type="text" value="">
        </div>
    </div>

编辑

<div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Category_ids')}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-category_ids" data-rule="required" data-source="teacher/selectpage" data-field="name" data-primary-key="id" class="form-control selectpage" data-multiple="true"  name="row[category_ids]" type="text" value="{$row.category_ids|htmlentities}">
        </div>
    </div>

这里有几个参数需要搞清楚
data-source
data-field
data-primary-key
主要是这几个参数 具体看这里
-》 传送门

---------------------------------------------控制器-----------------------------------------------

public function selectpage(){
        $this->model = model('app\common\model\Category');
        $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 = [];
        foreach ($this->categorylist as $k => $v) {
            $categorydata[$k] = $v;
            //用于验证 过滤字段  可忽略
            /*if ($v['spacer'] == '' || $v['spacer'] == '&nbsp;├' || $v['spacer'] == '&nbsp;└') {
                array_push($categorydata, $v);
           }*/ 
        }
        //这一块必须有   用于编辑时 默认选中值 
        if ($this->request->request("keyValue")) {
            $array = [];
            $ids = explode(',',$this->request->request("keyValue"));
            foreach ($categorydata as $key => $value) {
                if (in_array($value['id'],$ids)) {
                    array_push($array, $value);
                }
            }
            $categorydata = $array;
        }
        $data['list'] = $categorydata;
        $data['total'] = count($categorydata);
        return $data;
    }

---------------------------------------END-------------------------------------------------

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现一个模态框,可以使用fastadmin自带的layer插件。下面是一个简单的实现步骤: 1. 在需要触发模态框的页面中引入layer和jquery: ```html <script src="__STATIC__/layer/layer.js"></script> <script src="__STATIC__/jquery/jquery.min.js"></script> ``` 2. 在需要触发模态框的元素上绑定click事件,例如一个按钮: ```html <button class="btn btn-primary" id="my-btn">打开模态框</button> ``` ```javascript $('#my-btn').click(function(){ layer.open({ type: 1, title: '模态框标题', skin: 'layui-layer-demo', //样式类名 closeBtn: 1, //显示关闭按钮 anim: 2, shadeClose: true, //开启遮罩关闭 area: ['600px', '400px'], //宽高 content: '<div>模态框内容</div>' }); }); ``` 3. 在layer.open()方法中设置需要的参数,例如宽高、标题、内容等。 4. 如果需要在模态框中显示一个表单并提交数据,可以在content参数中设置一个form元素,然后在layer.open()方法中添加一个btn参数,指定提交按钮的事件回调。 例如: ```javascript layer.open({ type: 1, title: '模态框标题', skin: 'layui-layer-demo', //样式类名 closeBtn: 1, //显示关闭按钮 anim: 2, shadeClose: true, //开启遮罩关闭 area: ['600px', '400px'], //宽高 content: '\ <form class="layui-form" action="">\ <div class="layui-form-item">\ <label class="layui-form-label">用户名</label>\ <div class="layui-input-inline">\ <input type="text" name="username" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">\ </div>\ </div>\ <div class="layui-form-item">\ <label class="layui-form-label">密码</label>\ <div class="layui-input-inline">\ <input type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">\ </div>\ </div>\ <div class="layui-form-item">\ <div class="layui-input-block">\ <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>\ <button type="reset" class="layui-btn layui-btn-primary">重置</button>\ </div>\ </div>\ </form>', btn: ['提交', '取消'], yes: function(index, layero){ //按钮【提交】的回调 //获取表单数据 var data = $('.layui-form').serialize(); console.log(data); //发送ajax请求提交数据 layer.close(index); //关闭模态框 }, btn2: function(index, layero){ //按钮【取消】的回调 //关闭模态框 layer.close(index); } }); ``` 5. 如果需要在模态框弹出时,自动加载一些数据,可以在layer.open()方法中添加一个success参数,指定成功回调函数。 例如: ```javascript layer.open({ type: 1, title: '模态框标题', skin: 'layui-layer-demo', //样式类名 closeBtn: 1, //显示关闭按钮 anim: 2, shadeClose: true, //开启遮罩关闭 area: ['600px', '400px'], //宽高 content: '<div id="modal-content">模态框内容</div>', success: function(layero, index){ //模态框弹出成功后,发送ajax请求获取数据 $.get('/api/data', function(data){ //将数据渲染到模态框中 $('#modal-content').html(data); }); } }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wise man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值