DcatAdmin 下拉多选组件 如何按照选择的顺序提交

2. 问题描述

当前不管选择的顺序是什么,都会按照列表的顺序重置。
列表 1,2,3 选择 2,1,3 会显示1,2,3

$from->multipleSelect()

如何按照选择的顺序提交。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4
slowlyo

自定义组件

doge

5个月前 评论

你是选213存的是123吗?数据库字段是JSON类型吧,改为字符串类型就不会按123顺序存吧

5个月前 评论
DogLoML

这个多选组件是select2,不管你怎么选,是按照初始化时传入的options生成的选项作为顺序,为了改变保存的顺序,需要在选择选项时,将其从dom中移除,然后追加到末尾。

 public function followMySortMultipleSelectOption(){
        \Admin::script(
            <<<JS
        $('select').select2().on("select2:select", function (evt) {
               var element = $(evt.params.data.element);
               element.detach();
               $(this).append(element);
               $(this).trigger("change");
        });
JS
        );
    }

这样可以实现按选择顺序保存,接下来要对修改作处理,isEditing时,按顺序初始化select2的选项,把multipleSelect的options按照当前模型已有的顺序排好再传进去,否则编辑完保存时排序又没了。

5个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!