Jquery可排序/序列化,可排序和连接

嘿,我对jquery和ajax都非常陌生,我正在寻找一些关于如何正确执行此操作的建议。

我有一个div,我正在使用它可以排序,所以我可以根据需要安排事情。 它看起来像:

$('#resource-detail-content).sortable({ 

然后在我的ajax数据中我有类似的东西:

 data: $('#resource-detail-content').sortable('serialize'), 

哪个工作正常,但分解数据是有意义的,我把div分成两个单独的div,并使用connectWith允许拖动两者之间的内容:

 $('#resource-detail-content,#resource-detail-content2').sortable({ connectWith: '#resource-detail-content,#resource-detail-content2', 

我现在要弄清楚的是如何在我的ajax put中发送两个div的数据。 我试过了明显的事:

 data: $('#resource-detail-content, #resource-detail-content2').sortable('serialize'), 

但没有运气。 我非常感谢任何帮助。

干杯,肖恩

首先你应该使用类而不是ID,它会更灵活。

我认为问题来自于你有2个对象,每次调用后都会覆盖数据内容。

你应该使用一个函数,如下所示:

  data : getContent(), function getContent() { var data = ""; $(".resource-detail-content").each(function(){ if (data == "") data += $(this).serialize(); else data += "&" + $(this).serialize(); }); return data; } 

有一种更容易的方法来做到这一点。 我使用了jQuery UI示例中的portlet,但我只有一列而不是三列: http : //jqueryui.com/sortable/#portlets

我想序列化所有的portlet。 所以这是我的代码:

 update: function (event, ui) { var data = $(this).sortable('serialize', { "attribute": "data-sort" }); } 

第二个参数中的attribute键更改行为以搜索特殊的data-sort属性,该属性应格式如下:

 

在HTML中,我的行看起来像这样:

 
Question 1
Answer 1
Question 2
Answer 2
Question 3
Answer 3

在交换前两个元素后,结束这样的数据:

 "id[]=2&id[]=1&id[]=3"