【问题标题】:Extracting item order after sorting in jQuery sortable list在jQuery可排序列表中排序后提取项目顺序
【发布时间】:2012-03-06 07:54:24
【问题描述】:

我正在使用以下代码来允许管理员使用列表。然后我想用这个新的排序顺序更新我的数据库。

<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 中使用对我来说新的东西时,我似乎总是需要一点帮助。有人可以给我一点帮助吗? 谢谢

【问题讨论】:

    标签: php jquery jquery-ui


    【解决方案1】:

    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。

    【讨论】:

    • 我不得不更改 javascript,现在它是最终的 :)
    • 感谢您的所有努力。我想我现在可以让它工作了。
    猜你喜欢
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多