我正在组装一个拖放页面,其中的可拖放框包含由sql表填充的内容。一旦一个框被拖走,它就消失了,一个新的框出现了,其中包含最新的数据。
我希望一次只出现15个框,但我不确定如何使用SQL来做到这一点,因为框的拖放发生在加载之后,所以php对我没有帮助-在页面加载之前,我需要将框名称列表预先加载到js数组中吗?这是不是意味着我的整个名单都会向公众公开?
我已经使用xml表编写了这段代码,现在我正在迁移到sql。这是我编写的函数,每次发生JQuery drop事件时都会调用该函数:
function AddNextSkill() {
var div = document.getElementById('productbox');
div.innerHTML = div.innerHTML + '<div class="product" id= "box' + RunningCount +' "><h4>' + MyToolList[RunningCount][1] + "</h4></div>";
RunningCount += 1;
$("#productbox .product").draggable({//JQUERY DETAILS//}
});在本例中,我在JS MyToolListi中创建了一个预加载的数组,其中包含工具及其id的列表。
这是一种低效的方式吗?使用sql而不预载任何表是不是更好?
发布于 2015-03-01 09:20:59
我通过执行以下操作解决了这个问题:
我创建了一个AJAX调用,它只返回表中的下一行(带有一个
LIMIT $_GET[rownum], 1 在SQL查询结束时调用。然后,每当发生drop事件时,我都会调用此AJAX调用。唯一的诀窍是,您必须将新的box重新建立为可丢弃的。
function AddNewRow() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var div = document.getElementById('productbox');
div.innerHTML = div.innerHTML + xmlhttp.responseText;
}
}
xmlhttp.open("GET", "AddNewTool.php?rownum=" + RunningCount, true);
xmlhttp.send();
$("#productbox .product").draggable({//JQUERY DETAILS//}
});https://stackoverflow.com/questions/28785764
复制相似问题