我问题的简单版本:
当JQuery UI可拖动映像的ID被放入goal droppable时,是否可以将其用作值,并在可拖动映像被删除时更新MySQL数据库表中的某个字段?
我问题的技术版本:
我使用了一个网站上的教程,为我目前正在开发的游戏制作了一个拖放清单功能。
无论如何,我不能直接链接到我的网站,因为它需要登录,而且我还没有让我的系统在我的IP地址之外工作,但我基本上要做的是:
我的拖放功能很好,但我需要它来更新MySQL数据库,我知道在我链接的教程中,它有第二部分来完成,但不是我需要的方式。
因此,我的用户的库存有自己的表,其中包含以下字段:
bid:这是存储为32位唯一随机数的用户id
项目ID:这是一个8位的项目代码
用户和对象的所有信息都是内部连接的,以便将这些信息组合到PHP变量中,我将这些信息拆分到不同的表中,因为我有多个站点可以调整每个表。到目前为止这里一切正常。
我使用mysql_fetch_array()
将项目加载到库存框中,使其可拖动。
我的项目的格式如下:
img src='$cheesepic' id='$itemid' class='object cheese'
$cheesepic == "http://motb.isgreat.org/objects/" . $itemid . ".png";
并且
$item
id直接从库存表中被盗。CSS classes
对象将图像缩放到我想要的大小,我喜欢它胜过缩略图,因为它缓存得更好,因为我在站点周围使用了太多不同大小的对象。奶酪类是用来拖拽的,所以它只能被奶酪拖拽器接受。现在我的数据库里有另一张装备物品的表。所以那里的田地里有面包和奶酪。我想能够更新我的数据库与图像的ID,被拖到可拖放。如果他们将该行从droppable中拖出来并再次拖到inventory droppable中,则删除该行。
谢谢你的帮助。
最佳答案
jQuery拖放API让您获得被拖动项的数据,下面是一个您可能正在尝试执行的操作的示例(数据名和表行名只是随机估计):
$(".inventory").droppable({
drop: function(e, ui) {
// This gets the ID of the item you are dragging
var item_id = $(ui.draggable).attr('id');
// Ajax call example...
$.ajax({
type: "GET",
timeout: 10000,
url: "http://example.com/item_update.php?item_id="+item_id,
});
}
});
它的PHP/MySQL方面很难帮助您解决问题,因为大多数游戏脚本都是非常具体的,但是您可以按照以下思路来做:
$item_id = preg_replace( '/[^0-9]/', '', $_GET['id']);
mysql_query("UPDATE user_items SET equipped = 0 WHERE item_id = ".$item_id);