2012-03-06 73 views
0

我正在使用以下代碼來允許管理員使用列表。然後我想用這個新的排序順序更新我的數據庫。在jQuery可排序列表中排序後提取項目順序

<div id="item_list"> 
    <ul id="sortable"> 
     <?php 
     $i=1; 
     foreach ($row_Item as $row){ 
      echo ("<li><span></span><table><tr><td class=\"input_td\">" . $row['item_name'] . "</td><td class=\"input_td_right\">" . $row['program_sort'] . "</td><td class=\"input_td_right\">$" . number_format($row['prog_earnings'],0,".",",") . "</td><td class=\"input_td_right\">" . $i . "</td></tr></table></li>"); 
      $i=$i+1; 
     } 
     ?> 
    </ul> 
</div> 

這些項目是通過由子程序計算的$ row ['program_sort']值初始排序的。這個列表需要管理員通過按列表順序移動幾個項目來調整。

我不明白如何使用jQuery seralize方法提取新訂單,因爲它與每個li中的$ row ['item_name']有關。我是否必須爲每個li使用id,也許等於$ row ['item_name']?我需要的東西就像item_name1 => 5,item_name2 => 2,item_name3 => 4如果用戶將列表移動到這些位置。然後我可以用新的排序順序更新數據庫。

在jQuery中使用新的東西時,我似乎總是需要一點幫助。有人能給我一點幫助嗎? 謝謝

回答

0

jQuery serialize()需要表單元素,但在代碼中看不到任何內容。您可以使用自己的腳本來創建排序順序對象,例如:

function getSortOrder() { 
    var oList = {}; 
    $('#item_list li').each(function(iIndex, oElement) { 
     oList[$(oElement).find('td:first').text()] = iIndex + 1; 
    }); 
    return oList; 
} 

另見this example

+0

我不得不改變javascript,現在它是最終的:) – scessor 2012-03-06 08:20:23

+0

我已經更新了示例,現在列表也可以排序。 – scessor 2012-03-06 08:41:09

+0

感謝您的所有努力。我想我現在可以開始工作。 – user1028866 2012-03-06 08:56:17