【问题标题】:JQuery UI sortable saving with connected lists带有连接列表的 JQuery UI 可排序保存
【发布时间】:2013-05-14 04:28:53
【问题描述】:

我有两个列表(1 和 2),我想在项目从一个移动到另一个时更新它们。

HTML:

<ul class="sortable" id="task-list">
   <li id="listItem_1">Value 1 </li>
   <li id="listItem_2">Value 2 </li>
   <li id="listItem_3">Value 3 </li>
</ul>

<ul class="sortable" id="task-list-two">
   <li id="listItem_4">Value 1 </li>
   <li id="listItem_5">Value 2 </li>
   <li id="listItem_6">Value 3 </li>
</ul>

JS:

$("#task-list, #task-list-two").sortable({ 
   handle : '.handle',
   connectWith: ".sortable" 
   update : function () { 
     var order = $('#task-list').sortable('serialize'); 
     $("#info").load("process-sortable.php?"+order); 
   } 
});

但我也想更新列表(1 或 2)。我需要向process.sortable.php 发布一个额外的变量吗?

我目前拥有的 foreach 仅适用于第一个列表(简化):

$task = nl2br($_POST['task']);
$userid = $_SESSION['userid'];
$position = $_POST['p'];
$date = $_POST['date'];

$i = "INSERT INTO tasks VALUES('','$task','$userid','0','$position','$date')";
$doi = mysql_query($i) or die(mysql_error());

提前致谢!

更新 FOREACH PHP:

foreach ($_GET['listItem'] as $position => $item)
{
    $list = $_GET['list'];
    if($list == "task-list")
    {
        $list = 1;
    }
    if($list == "task-list-two")
    {
        $list = 2;
    }
    $sql = "UPDATE `tasks` SET `position` = $position AND date = '$list' WHERE `id` = $item"; 

    print($sql);
    $dosql = mysql_query($sql) or die(mysql_error());
}

【问题讨论】:

  • 如果您所做的只是运行服务器端脚本,您可能不应该使用 load() 吗?
  • 我这样做是为了检索发布的 SQL 语句。
  • list 参数从何而来?

标签: php jquery jquery-ui


【解决方案1】:

您可以将列表 ID 传递给 PHP 页面,例如:

$("#info").load("process-sortable.php?"+order+"&list="+$(this).attr('id')); 

在 PHP 页面上,您可以为列表类型设置条件。

您还需要更改 order 变量以考虑不同的列表:

var order = $(this).sortable( "serialize" );

【讨论】:

  • 似乎合法。但是,我确实收到此错误:foreach() 提供的参数无效。用 foreach 代码更新我的问题。
  • 这几乎行得通。它更新项目,但不使用正确的列表。它为它提供了它来自的列表 ID,而不是它去往的地方。知道如何解决吗?
  • 我做了一个小提琴例子来搞乱,我没有看到问题......虽然也许我的例子没有考虑所有变量。 My Example
  • 谢谢,你的例子使它工作。但是,我只有在将项目从列表 2 移动到 1 时遇到问题,当我将其作为列表 1 中的最后一项删除时,它仍然将其视为列表 2 中的项目。我该如何阻止它?
  • 仍然不能 100% 确定问题,我唯一能看到的是,如果您将最后一项从列表 1 移动到列表 2,您的更新将运行但列表 1 的值为空白(因为列表 1 中不再有任何项目。)我更新了示例以处理空白列表。
猜你喜欢
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多