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

2. 问题描述

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

$from->multipleSelect()

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4
slowlyo

自定义组件

doge

1年前 评论

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

1年前 评论
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按照当前模型已有的顺序排好再传进去,否则编辑完保存时排序又没了。

1年前 评论

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