使用连接列表的JQuery UI可排序保存

时间:2013-05-19 14:11:51

标签: php jquery jquery-ui

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

提前致谢!

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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