码迷,mamicode.com
首页 > Web开发 > 详细

jquery sortable 提交数据保存 使用问题

时间:2018-06-18 18:53:27      阅读:500      评论:0      收藏:0      [点我收藏+]

标签:manager   就是   tps   项目   man   his   img   IV   分享图片   

 

最终效果图

 

技术分享图片

有几个坑这里分享一下。

我用的是cloud-admin,一个bootstrap的CSS模板。

jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license */

jQuery UI - v1.11.1 - 2014-08-24

jquery 的sort 功能是在ui包里面的,所以需要UI包引入

一开始引入页面没效果,新建一个单独的页面正常使用,又放入完整页面又正常了,真不知道什么情况。反复试一下应该是没问题的。

试了以为是 ol 标签有问题,换 ul 好了又换回 ol 一切正常。

1 <div>
2                                             <ol class="dd-list" id="checkList">
3                                             <c:forEach items="${checkList}" var="item">
4                                                 <li id="${item.fieldName}">
5                                                     <span  class="btn btn-default">${item.chineseName}</span>
6                                                 </li>
7                                             </c:forEach>
8                                             </ol>
9                                         </div>

 

2个候选框,一个是已选择的,另外一个是未选择的,可以互相拖拽,这个地方用到 sortable  connectWith属性

$("#uncheckList").sortable({
        connectWith:"#checkList"
  }).disableSelection();

只提交已选择那个DIV里的项目保存到数据库。

这里的  sortable("toArray")  功能,需要注意一下,出来是个 以 , (逗号) 隔开的字符串,内容就是 li 属性 id 的内容。

而且出来的是按顺序排列的一串。如下图。

id="${item.fieldName}"

    技术分享图片  

 

    但你直接通过ajax post是不行的,需要decodeURIComponent一下才能在服务器端正常获取到。剩下的就没什么问题。很 好用的一个功能。

 

checklist=decodeURIComponent(checklist,true);

 

 1 <script>
 2 var typeId=${param.type};
 3   $(function() {
 4     $("#checkList").sortable({
 5           connectWith:"#uncheckList",
 6           delay:1,
 7           stop:function(){
 8               var checklist=$("#checkList").sortable("toArray");
 9               checklist=decodeURIComponent(checklist,true);
10               $.post("/sequence.json",{value:checklist,type:typeId});  
11           }
12     }).disableSelection();
13     
14     $("#uncheckList").sortable({
15          connectWith:"#checkList"
16     }).disableSelection();
17   });
18 </script>

 

 

 1     @ResponseBody
 2     @RequestMapping(value="/sequence",method=RequestMethod.POST)
 3     public Integer updateSequence(HttpServletRequest request, HttpServletResponse response, ModelMap model) {
 4         Integer classify = getClassify(request);
 5         String value=this.getValue(request, "value");
 6         super.logParam(request);
 7         String[] attrs=StringUtils.split(value,",");
 8         List<CustomColumn> cclist=new ArrayList<CustomColumn>();
 9         for(int sequence=0,len=attrs.length;sequence<len;sequence++){
10             CustomColumn cc=new CustomColumn();
11             cc.setClassify(classify);
12             cc.setFieldName(attrs[sequence]);
13             cc.setSequence(sequence);
14             cclist.add(cc);
15         }
16         manager.savePointListCustomColumns(cclist, this.getCompanyId(request),classify);
17         return 1;
18     }

 

完美。

 

jquery sortable 提交数据保存 使用问题

标签:manager   就是   tps   项目   man   his   img   IV   分享图片   

原文地址:https://www.cnblogs.com/nanahome/p/9195768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!