首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql循环-预加载数据?

问mysql循环-预加载数据?
EN

Stack Overflow用户
提问于 2015-03-01 03:15:41
回答 1查看 69关注 0票数 2

我正在组装一个拖放页面,其中的可拖放框包含由sql表填充的内容。一旦一个框被拖走,它就消失了,一个新的框出现了,其中包含最新的数据。

我希望一次只出现15个框,但我不确定如何使用SQL来做到这一点,因为框的拖放发生在加载之后,所以php对我没有帮助-在页面加载之前,我需要将框名称列表预先加载到js数组中吗?这是不是意味着我的整个名单都会向公众公开?

我已经使用xml表编写了这段代码,现在我正在迁移到sql。这是我编写的函数,每次发生JQuery drop事件时都会调用该函数:

代码语言:javascript
复制
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而不预载任何表是不是更好?

EN

回答 1

Stack Overflow用户

发布于 2015-03-01 09:20:59

我通过执行以下操作解决了这个问题:

我创建了一个AJAX调用,它只返回表中的下一行(带有一个

代码语言:javascript
复制
LIMIT $_GET[rownum], 1 

在SQL查询结束时调用。然后,每当发生drop事件时,我都会调用此AJAX调用。唯一的诀窍是,您必须将新的box重新建立为可丢弃的。

代码语言:javascript
复制
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//}
   });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28785764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档