JQuery UI可排序保存与连接列表


JQuery UI sortable saving with connected lists

我有两个列表(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());

提前感谢!

update_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());
}

您可以像这样将list id传递给PHP页面:

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

进入PHP页面后,您可以为列表类型创建一个条件。

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

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