#php #jquery #mysql #drag-and-drop
#php #jquery #mysql #перетаскивание
Вопрос:
Простая версия моего вопроса: Возможно ли взять идентификатор перетаскиваемого изображения jQuery UI, когда оно попадает в мою цель droppable, и использовать идентификатор в качестве значения и обновлять поле в одной из моих таблиц базы данных MySQL при удалении перетаскиваемого изображения?
Техническая версия моего вопроса: я использовал руководство с веб-сайта, чтобы создать функцию перетаскивания инвентаря для игры, над которой я сейчас работаю.
В любом случае, я не могу дать прямую ссылку на свой сайт, поскольку для этого требуется логин, и я не заставил свою систему работать за пределами моего IP-адреса, но вот что я в основном пытаюсь сделать:
Мое перетаскивание отлично работает, но мне это нужно для обновления базы данных MySQL, я знаю, что в руководстве, на которое я ссылался, есть вторая часть, которая делает это, но не так, как мне нужно.
Итак, в инвентаре моего пользователя есть собственная таблица со следующими полями:
ставка: это идентификатор пользователя, сохраненный в виде 32-значного уникального случайного числа itemid: это 8-значный код товара
Вся информация для пользователя и объектов объединена внутри, чтобы объединить информацию в переменные PHP, я разделил их по разным таблицам, потому что у меня есть несколько сайтов, которые настраивают каждую из них. Пока здесь все работает.
Я использую mysql_fetch_array()
для загрузки товаров в ящик инвентаря, чтобы сделать их перетаскиваемыми.
Мои элементы отформатированы следующим образом:
img src='$cheesepic' id='$itemid' class='object cheese'
$cheesepic == "http://motb.isgreat.org/objects/" . $itemid . ".png";
и $item
идентификатор украден непосредственно из таблицы инвентаризации. CSS classes
Объект масштабирует изображение до желаемого размера, мне это нравится больше, чем эскизы, поскольку оно лучше кэшируется, потому что я использую объекты разных размеров по всему сайту. Класс cheese предназначен для перетаскивания, поэтому он принимается только удаляемым файлом cheese.
Теперь в моей базе данных есть еще одна таблица для оборудованных объектов. Итак, поля там — bid и cheese. Я хотел бы иметь возможность обновлять свою базу данных идентификатором изображения, которое было перенесено в droppable. И удалите эту строку, если они вытащат ее из droppable и снова поместят в inventory droppable.
Спасибо за вашу помощь.
Комментарии:
1. @Awais Qarni, пожалуйста, используйте обратную метку или добавляйте четыре пробела для форматирования кода, а не
<pre>
теги… для них все еще требуются ужасныеamp;>
трюки для использования<
символов, и они очень затрудняют копирование и вставку.
Ответ №1:
API перетаскивания jQuery позволяет вам получать данные перетаскиваемого элемента, вот пример того, что вы, возможно, пытаетесь сделать (имена данных и имена строк таблицы — это просто случайные оценки):
$(".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);
Комментарии:
1. Спасибо, это то, что мне было нужно, это намного проще, чем я думал, я люблю jQuery.
2. Спасибо, мне это тоже помогло. Комментарий: после того, как item_id является дополнительным