2012-07-24 36 views
0

我正在使用jQuery UI可排序以允許用戶從4列移動項目以及更改每列中項目的順序。我有後者沒有問題的工作;將新訂單更新到數據庫。jQuery UI&PHP - 將'To'列發送到PHP

但我不知道如何處理從列A到列B的存儲。每個無序列表都有一個唯一的ID,因此我想將這些信息一起發送;我只是沒有對如何做到這一點的堅定理解。

$("#list1, #list2, #list3, #list4").sortable({ 
    connectWith: ".sort", 
    placeholder: "shadow", 
    dropOnEmpty: true, 
    opacity: 0.8, 
    cursor: 'move', 
    update: function() { 
     var order = $(this).sortable("serialize") + '&update=update'; 
     $.post("/update.php", order, function(theResponse) { 
      $("#alert").html(theResponse); 
      $("#alert").slideDown('slow'); 
      slideout(); 
     }); 
    } 
}); 
+0

所以你在找什麼呢?它在工作,對吧? – Horen 2012-07-24 20:54:46

+0

現在它只是發送一個新的排序順序(即1,2,3,4,5)的數組。它需要發送一個關聯數組來顯示正在排序的項目及其新的父級UL。 – 2012-07-25 11:39:04

回答

1

我已經找到了自己的問題的答案。答案是以稍微不同的方式將數據傳遞給PHP文件,以允許更強大的變量數量(而不僅僅是序列化一組信息)。

var item = ui.item; 
var new_ul = item.parent(); 
var order = []; 
container.children('li').each(function(i){ 
    reorder[i] = $(this).attr('id'); 
}); 

$.ajax({ 
    method:'post', 
    url: 'update.php', 
    data:{ 
     'new_ul':container.attr('id'), 
     'item':item.attr('id'), 
     'order':order 
    } 
}); 

該解決方案完全歸功於用戶Zehee'在CodeIgniter的(誰我相信得到了來自37signals的解決方案)http://codeigniter.com/forums/viewthread/175134/#831756