База данных элементов MySQL с возможностью удаления jQuery

#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 является дополнительным