我的问题的简单版本: 是否可以获取 JQuery UI 可拖动图像的 ID,当它被放入我的目标 droppable 中,并使用该 ID 作为值并在可拖动图像被放置时更新我的一个 MySQL 数据库表中的字段?
我的问题的技术版本: 我使用网站上的教程为我目前正在开发的游戏制作拖放库存功能。
无论如何,我不能直接链接到我的网站,因为它需要登录,而且我还没有让我的系统在我的 IP 地址之外工作,但这是我基本上想做的:
我的拖放效果很好,但我需要它来更新 MySQL 数据库,我知道在我链接的教程中,它有第二部分可以执行此操作,但不是我需要的方式。
所以我的用户的库存有自己的表,其中包含以下字段:
出价:这是存储为 32 位唯一随机数的用户 ID itemid:这是一个 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
对象将图像缩放到我想要的大小,我比缩略图更喜欢它,因为它缓存得更好,因为我在网站周围使用了很多不同大小的对象。 cheese 类是用来拖动的,所以它只被 cheese droppable 接受。
现在我的数据库中有另一个表用于装备的对象。所以那里的田地有出价和奶酪。我希望能够使用被拖入 droppable 中的图像的 ID 来更新我的数据库。如果他们将其拖出可转换项并再次进入库存可转换项,则删除该行。
感谢您的帮助。
最佳答案
jQuery Drag & Drop 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);
关于php - 带有 JQuery Droppable 的 MySQL 项目数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6091487/