V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vjack
V2EX  ›  PHP

laravel 框架、 PHP 语言 后台管理系统,实现一个列表排序功能,人工控制顺序,请教下有什么好的实现思路,我只想到了让用户输入数字 1,2,3,4,5 来进行控制。谢谢各位大佬赐教

  •  
  •   vjack · 2020-06-29 16:24:32 +08:00 · 2944 次点击
    这是一个创建于 1599 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2020-07-08 10:23:35 +08:00
    NjcyNzMzNDQ3
        1
    NjcyNzMzNDQ3  
       2020-06-29 17:10:23 +08:00
    要是想对用户更友好,就在前端搞个上"下移动按钮"代替用户输入数字呗
    Flourite
        2
    Flourite  
       2020-06-29 17:18:54 +08:00
    浏览器有拖曳功能,这样就很好排序了
    caola
        3
    caola  
       2020-06-29 18:27:31 +08:00
    如果一个要按用户输入的数字来排序,
    caola
        4
    caola  
       2020-06-29 18:28:53 +08:00
    那么你可能用到 ->orderByRaw("FIELD(`xxx 字段`, '1', '3', '2', '4')")
    guiling
        5
    guiling  
       2020-06-29 18:33:50 +08:00 via Android
    1 置顶,取排序字段最大值+ 1,默认 0
    2 上移下移, 交换排序字段,需要字段唯一
    3 拖拽,一种是插入,需要修改之间所有排序字段,一种是交换,对前端要求高点,分页不好操作
    faceRollingKB
        6
    faceRollingKB  
       2020-06-29 18:47:56 +08:00
    瞎想的我也没试过:序号给成小数,插入某个位置时取上下值的平均数
    RLWGQ0AI4MAvYy36
        7
    RLWGQ0AI4MAvYy36  
       2020-06-29 19:58:28 +08:00
    拖拽咯,其实涉及分页填数字挺好的
    vvong
        8
    vvong  
       2020-06-29 20:07:58 +08:00
    前端 sortablejs 这个插件实现拖拽排序
    x86
        9
    x86  
       2020-06-29 20:13:03 +08:00 via iPhone
    前端拖拽去做呗
    lijialong1313
        10
    lijialong1313  
       2020-06-29 20:26:31 +08:00
    这个第一次执行的时候,前端排序好,提交到后台留一个字段。
    以后就按照这个字段排序,例如叫做 sortNum
    RickyC
        11
    RickyC  
       2020-06-29 22:32:31 +08:00
    如果列表里的条数不太多的话:

    1. 数据表: 添加 order_num 字段, 前端视图按照 order_num 显示默认顺序
    2. 前端视图: 给每项添加"上移","下移"键, 或者是可以拖拽;
    每次更改顺序后, 给所有的 item 在前端重新生成 order_num;
    把所有的 order_num 按照 id 更新到数据库, 即保存了新的顺序
    Steps
        12
    Steps  
       2020-06-29 22:36:13 +08:00
    datatables 也可以帮助你排序
    vjack
        13
    vjack  
    OP
       2020-06-30 15:06:09 +08:00
    @vvong 谢谢啦,我一会试下
    selfcreditgiving
        14
    selfcreditgiving  
       2020-06-30 22:47:48 +08:00 via Android
    这个是不是菜单列表啊? 最后也是选择把所有 order_id 更新一遍。因为 1234 把 4 放到 1,2 中间,基本所有序号都要变了。主要是菜单也不会有很多
    vjack
        15
    vjack  
    OP
       2020-07-08 10:23:35 +08:00
    @selfcreditgiving 对,类似菜单列表
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2582 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:01 · PVG 00:01 · LAX 08:01 · JFK 11:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.