我正在使用 jQuery UI 为 UL 创建拖放功能。这个想法是您可以对列表中的项目进行排序,并且视图顺序将在数据库中更新(这是有效的)。我现在尝试添加的功能是能够将 LI 拖到不同的 UL 中并更新数据库,以便应用程序知道 LI 进入哪个列表。该项目可以移动到不同的列表中,但是我发布到的 php 文件没有更新数据库。
PHP 文件像这样回显列表:
<div class="list_div">
<h3>List #1</h3>
<ul id="listnumber_25" class="ui-sortable" unselectable="on">
<li id="item_134">list item 1</li>
<li id="item_135">list item 2</li>
<li id="item_136">list item 3</li>
<li id="item_137">list item 4</li>
</ul>
</div>
<div class="list_div">
<h3>List #2</h3>
<ul id="listnumber_26" class="ui-sortable" unselectable="on">
<li id="item_138">list item 1</li>
<li id="item_139">list item 2</li>
<li id="item_140">list item 3</li>
<li id="item_141">list item 4</li>
</ul>
</div>
JS看起来像这样:
//sort / change list
$(document).ready(function(){
$(".list_div ul").sortable({
receive: function(event, ui) {
var list_id = this.id;
var li_to_reassign = ui.item.attr('id');
$.post("functions/changelist.php", { li_to_reassign: li_to_reassign, list_id: list_id } );
}
});
});
函数/changelist.php:
<?
$list_id = $_POST['list_id'];
$list_id = substr('$list_id', 11);
$li_to_reassign = $_POST['li_to_reassign'];
$li_to_reassign = substr('$li_to_reassign', 5);
//------------------------------------------
// connect to DB
$host="localhost"; // Host name
$username="********"; // Mysql username
$password="********"; // Mysql password
$db_name="**********"; // Database name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="UPDATE tasks SET list_id='$list_id' WHERE id='$li_to_reassign'";
$result=mysql_query($sql);
?>
我似乎找不到问题!