将 jquery ui-sortable 位置保存到 DB

Posted

技术标签:

【中文标题】将 jquery ui-sortable 位置保存到 DB【英文标题】:save jquery ui-sortable positions to DB 【发布时间】:2011-10-29 03:46:05 【问题描述】:

我正在尝试为拥有小型网络收音机的朋友复制此页面 (http://www.kissfm.ro/fresh-top-40/) 的功能。该网站是在 wordpress 中设置的,仅供参考。

所以我的问题是,在搜索 *** 之后,我如何根据用户输入保存/获取修改后的图表?我找到了如何保存单次提交,但如何根据用户选择获得最终图表?

提前致谢! (欢迎代码或教程链接!)

【问题讨论】:

【参考方案1】:

使您的 html 可排序,添加 javascript,并在更新时保存到 php

<ul id="sortable">
    <li id="1">elem 1</li>
    <li id="2">elem 2</li>
    <li id="3">elem 3</li>
    <li id="4">elem 4</li>
</ul>

$(document).ready(function()
    $('#sortable').sortable(
        update: function(event, ui) 
            var newOrder = $(this).sortable('toArray').toString();
            $.get('saveSortable.php', order:newOrder);
        
    );
);

【讨论】:

谢谢!这样就成功了,尽管我们花了一天的时间才弄清楚如何保存每个提交并获得中间值。 您是否应该使用 post 而不是 get,因为您正在修改服务器上的数据?另外,如果服务器保存不成功会发生什么?如果服务器保存失败,也许应该使用 beforeStop 方法并取消排序?【参考方案2】:

我知道这是旧的,但我所做的只是在每个 LI 中添加一个隐藏的输入元素。它们都将具有相同的名称,末尾带有 []。这样,当您发布包含 UL 的表单时,您将按照您刚刚放置列表的顺序在您的帖子值中获得一个数组。

【讨论】:

【参考方案3】:

根据 Sortable 文档,我们必须在 LI 的 id 前面加上一些字符串。 然后,如果我们在更新方法中序列化可排序,我们将在 php 中得到一个不错的数组,例如new_order[]=1&new_order[]=2 等

var data = $(this).sortable('serialize');

<ul id="sortable">
    <li id="new_order_1">elem 1</li>
    <li id="new_order_2">elem 2</li>
    <li id="new_order_3">elem 3</li>
    <li id="new_order_4">elem 4</li>
</ul>

【讨论】:

【参考方案4】:
You may POST with input  to DB and save it
Here we go:
<ul id="sortable">
    <li id="1"><input type ="text" value="elem 1"/></li>
    <li id="2"><input type="text" value="elem 2"/></li>
   .
   .
</ul>
<style>
 #sortable
  border: hidden;

</style>
$(document).ready(function()
    $('#sortable').sortable(
        update: function(event, ui) 
            var newOrder = $(this).sortable('toArray').toString();
            $.get('saveSortable.php', order:newOrder);
        
    );
);

希望对你有所帮助;)

【讨论】:

以上是关于将 jquery ui-sortable 位置保存到 DB的主要内容,如果未能解决你的问题,请参考以下文章

保存位置的JQuery可拖动图像

如何使用 jquery 将变量数据保存为特定文件位置的 .json 扩展文件格式

在数据库中保存 jquery ui 位置并显示它

Angular ui-sortable + angular-gridster

我怎样才能使它只有一个空状态或 ui-sortable 显示的放置目标占位符?

两个带有 angular-ui/ui-sortable 的连接列表,在一个中禁用占位符,同时在另一个中启用它