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

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

1. 数据表: 添加 order_num 字段, 前端视图按照 order_num 显示默认顺序
2. 前端视图: 给每项添加"上移","下移"键, 或者是可以拖拽;
每次更改顺序后, 给所有的 item 在前端重新生成 order_num;
把所有的 order_num 按照 id 更新到数据库, 即保存了新的顺序
Steps
2020-06-29 22:36:13 +08:00
datatables 也可以帮助你排序
vjack
2020-06-30 15:06:09 +08:00
@vvong 谢谢啦,我一会试下
selfcreditgiving
2020-06-30 22:47:48 +08:00
这个是不是菜单列表啊? 最后也是选择把所有 order_id 更新一遍。因为 1234 把 4 放到 1,2 中间,基本所有序号都要变了。主要是菜单也不会有很多
vjack
2020-07-08 10:23:35 +08:00
@selfcreditgiving 对,类似菜单列表

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685649

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX