嘿,所有。快速瞭解我正在努力完成的任務。我有兩列數據。每列都有任意數量的同質元素。在jQuery可排序更新事件中,我想序列化所有元素在其可尊敬的列中的位置。列中的每個元素都有一個形式爲item_{id}
的標識。在更新事件中,我將序列化兩列中的元素。我想知道是否有一種有效的方法來序列化col1和col2列命令並將它們組合爲單個數據庫調用。開箱即用,可排序(「序列化」)方法會返回一個格式化字符串,如:jQuery可排序在一次數據庫調用中序列化兩列?
item[]=88&item[]=1&item[]=2&item[]=90
因此,在更新事件列1,我有:
$("#col1").sortable({
handle: '.item h2',
connectWith: '#col2',
update: function(event, ui) { Update(event, ui); }
}).disableSelection();
27:11第2列:
$("#col2").sortable({
handle: '.item h2',
connectWith: '#col1',
update: function(event, ui) { Update(event, ui); }
}).disableSelection();
,並且更新事件:
function Update(event, ui) {
var col1Order = $("#col1").sortable("serialize"); // Returns item[]=88&item[]=1&item[]=2&item[]=90
var col2Order = $("#col2").sortable("serialize"); // Returns item[]=23&item[]=10&item[]=65
}
是否有一種將第1列排序和第2列排序組合成一個數據庫調用的有效方法(它會將更新的位置存儲在數據庫中)?
如果我的兩個結果串連在一起,這將導致格式的字符串:
item[]=88&item[]=1&item[]=2&item[]=90&item[]=23&item[]=10&item[]=65
有了這種形式,你無法區分哪些項目從柱來了。我思考了不同的方法。一種方法是將查詢字符串格式化爲?col1=88_1_2_90&col2=23_10_65
,然後在服務器端分割col1值88_1_2_90
,'_'
,這將給我一個值的數組(88位置0,1位置1等等) )並使用相同的方法分割col2值,但我認爲可能有一種更優雅的方式來完成此操作。
我的主要目標是避免進行兩個單獨的數據庫調用(一個用於column1,另一個用於column2)。我可以序列化col1並調用數據庫來更新col1中元素的位置,然後序列化col2並再次調用數據庫來更新col2中元素的位置,但這正是我試圖避免的。
我願意接受任何和所有的建議。提前致謝。