2013-10-02 33 views
0

HTMLjQuery的排序(空字符串)

<ul id="user-stream-list" class="user-stream-list ui-sortable"> 
    <li data-id="36" data-oid="0" class="feed" style="position: relative; left: 0px; top: 0px;"><span class="cat-title" data-title="36">Tech Crunch<span class="edit-title" style="right: 35px;">rename</span><span class="delete-title">×</span></span> 
     <ul class="ui-sortable"> 
     </ul> 
    </li> 
    <li data-id="37" data-oid="1" class="feed" style="position: relative; left: 0px; top: 0px;"><span class="cat-title" data-title="37">Apple<span class="edit-title">rename</span></span> 
     <ul class="ui-sortable"> 
      <li class="feed sub"><a data-uid="18" data-fid="11" href="http://appleinsider.com/appleinsider.rss"><img src="https://www.google.com/s2/favicons?domain=appleinsider.com" class="favicon"><span class="title">AppleInsider - Frontpage News</span><span class="options"><span data-fid="11" class="addcat">+</span><span class="delete">×</span></span></a></li> 
     </ul> 
    </li> 
</ul> 

jQuery的

$("#user-stream-list").sortable({ 
     update : function() { 
      var order = $('#user-stream-list').sortable('serialize'); 
      console.log(order); 
      //$("#info").load("process-sortable.php?"+order); 
     } 
    }); 

DB

id  uid  oid  cname 
20  36  0  Tech Crunch 
21  37  1  Apple 

當我重新來關注我的缺點ole.log()返回(an empty string)我很無知,爲什麼它沒有顯示任何東西。 jsFiddle

我試圖通過data-id和data-oid,以便在PHP中我可以綁定兩個處理到我的數據庫。

回答

2

這是因爲元素的ID的不符合要求的格式,ID應該有兩個部分用下劃線,等號或連字符

From Docs

注分離:如果序列化回報一個空字符串,請確保ID爲 屬性包含下劃線。它們必須採用以下格式: 「set_number」例如,具有id屬性「foo_1」, 「foo_5」,「foo_2」的3元素列表將序列化爲「foo [] = 1 & foo [] = 5 foo [ [] = 2" 。您可以用 使用下劃線,等號或連字符來分隔集合和 號碼。例如,「foo = 1」,「foo-1」和「foo_1」全部序列化爲 「foo [] = 1」。

<ul id="user-stream-list" class="user-stream-list ui-sortable"> 
    <li id="o_36" class="feed" style="position: relative; left: 0px; top: 0px;"><span class="cat-title" data-title="36">Tech Crunch<span class="edit-title" style="right: 35px;">rename</span><span class="delete-title">×</span></span> 
     <ul class="ui-sortable"> 
     </ul> 
    </li> 
    <li id="o_37" class="feed" style="position: relative; left: 0px; top: 0px;"><span class="cat-title" data-title="37">Apple<span class="edit-title">rename</span></span> 
     <ul class="ui-sortable"> 
      <li class="feed sub"><a data-uid="18" data-fid="11" href="http://appleinsider.com/appleinsider.rss"><img src="https://www.google.com/s2/favicons?domain=appleinsider.com" class="favicon"><span class="title">AppleInsider - Frontpage News</span><span class="options"><span data-fid="11" class="addcat">+</span><span class="delete">×</span></span></a></li> 
     </ul> 
    </li> 
</ul> 

演示:Fiddle

基於更新

我認爲這將是更好地使用這裏的toArray選項

$("#user-stream-list").sortable({ 
    update: function() { 
     var ids = $(this).sortable('toArray', { 
      attribute : 'data-id' 
     }); 
     console.log(ids); 
     var oids = $(this).sortable('toArray', { 
      attribute : 'data-oid' 
     }); 
     console.log(oids); 
     //$("#info").load("process-sortable.php?"+order); 
    } 
}); 

演示:Fiddle

+0

謝謝,我已經修改了OP解釋一下我究竟reaquire – ngplayground

+0

@Beardy我不認爲序列化方法支持兩個屬性...你可以創建具有所需值的第三屬性。 ..也分享你想要的值的格式 –

+0

我沒有看到我可以更新我的數據庫沒有2個值通過每個列表項。我將更新我的OP與表的外觀 – ngplayground