gpt4 book ai didi

javascript - jquery 拖动更新,更改数据库

转载 作者:行者123 更新时间:2023-11-28 15:47:50 25 4
gpt4 key购买 nike

我有一组数据(发布在下面),按“部分”排序。当它加载到页面上时,每个项目都会根据其部分分类到 UL 中。

我想要完成的是,当用户将一个项目拖到另一个部分并将其放下时,数据库中的该部分将自动更新(即,将 item2 拖到第 2 部分,部分将从 0 更新到 2)。

我不关心将项目保持在特定的顺序,唯一需要更新的是#部分

由此展示的功能 FIDDLE

数据库

id   name    section
1 item1 0
2 item2 0
3 item3 0
4 item4 0

HTML

 <!-- Items are dynamically inserted into ULs based on section #, unique ids become li id -->
<!-- DATA = 0 -->
<ul id="main" class="sortable" data="0">
<li id="1">Item 1</li>
<li id="2">Item 2</li>
<li id="3">Item 3</li>
<li id="4">Item 4</li>
</ul>
<!-- DATA = 1 -->
<ul id="box1" class="sortable" style="background-color: blue" data="1">

</ul>
<!-- DATA = 2 -->
<ul id="box2" class="sortable" style="background-color: green" data="2">

</ul>

jQuery

拖动事件完成后,我尝试调用一个运行 php 脚本的函数来更新数据库,但在传递 ID 变量时遇到问题

$('.sortable').sortable({
connectWith: '.sortable',
update: function(event, ui) {
//Get id of element moved and the id of ul it was dropped in
updateDB(updateid, sectionid);
}
});

function updateDB(updateid, sectionid) {
$.ajax({
//grab script, pass id and update database
});
}

有人可以指出我如何获取数据的正确方向,以便我可以正确更新数据库

最佳答案

我希望我明白你的问题,你想获取被拖到某个地方的元素id吗?如果是这样,代码如下:

$('.sortable').sortable({
connectWith: '.sortable',
update: function(event, ui)
{
alert(ui.item.attr('id'));
var id = ui.item.attr('id');
updateDB(id);
}
});

function updateDB(id) {
$.ajax({
//grab script, pass id and update database
});
}

要查找元素被拖动到的框,可以使用:alert(ui.item.parent().attr('id'));

注意: ui 对象中有一个名为 item 的属性,该属性保存被拖动的 jquery 元素。这是link to the API 。通过拥有此对象,您可以使用 .attr('attribute') 函数访问它的所有属性。

关于javascript - jquery 拖动更新,更改数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21665245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com