【发布时间】:2018-08-17 17:41:43
【问题描述】:
在某些情况下,我有三个用于拖放项目的 div。第一个 div 将是开始的默认 div。然后,当我将内容放入其中时,我希望后两个 div 更新数据库。这些 div 将是动态的,我随时可能有 5 或 6 个 div,但也只能有 2 或 3 个。我对 javascript 不是很有经验。我已经走到了这一步,但我正在努力争取更进一步。这是一个三部分的问题:
A) 我如何提供每个 DIV 的总和 - 现在无论我将元素放入哪个 div,总和 div 都会相加。我还希望在对象离开 div 时从总和中减去,并从数据库中删除条目(不包括原始的第一个 DIV)。
B) 如何使用 ajax 请求向 update.php 发送多个 $_POST 值?我试过data:{data: data, name: name, check: check, amount: amount},,但这使我的 sum div 停止工作。如果我按原样运行它,我只会得到“金额”值(即 div id),但它不会作为“金额”发布。我正在尝试获取被删除元素的 div id(数量)、被删除元素的 div 内容(名称)和对象被放入的 div id,或父 div 的 id(检查)。正如我之前所说,这个 javascrip/ajax 对我来说是新的。经过几个小时的搜索,我没有找到我想要的东西。
C) 有没有办法将“总”变量从 update.php 返回到我的脚本,而不是在脚本中添加内容?
javascript
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
var total = 0;
function drop(ev, ui) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
$.ajax({
type:'POST',
url:'../update.php',
data:{data:data},
success: function(){
total += parseFloat(data);
$('#sum').html(total);
}
});
}
html
<h2>Drag and Drop</h2>
<div id="center">
<div id="2018-08-01" ondrop="drop(event)" ondragover="allowDrop(event)">
<div class="move" draggable="true" ondragstart="drag(event)" id="1056.23">Mortgage</div>
<div class="move" draggable="true" ondragstart="drag(event)" id="10">Fees</div>
</div>
<div id="2018-08-05" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div id="sum">Sum Here</div>
<div id="2018-08-15" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<div id="sum">Sum Here</div>
</div>
update.php
$name = $_POST['name'];
$check = $_POST['check'];
$amount = $_POST['amount'];
$sql = "INSERT INTO bills (bills_id, bills_name, bills_check, bills_amount) VALUES ('', '$name', '$check', '$amount')";
mysqli_query($connect, $sql);
【问题讨论】:
标签: javascript jquery html ajax drag-and-drop