1

对不起,这可能是一个非常基本的问题,但我是从网上自学的,不知道还能问谁。

我想知道是否有办法对远程服务器执行 php/mysql 查询,然后将结果返回给客户端机器。我计划使用用户访问的查询结果(2D)和要执行的另一个查询。它必须通过 ajax 调用或以更好的方式由 javascript 脚本访问

我想这样做,因为我想“加速”网站,并限制用户在执行查询时丢失的时间。

示例:用户想要查看公司 X 的所有员工的一些数据。Php 选择公司 X 的所有员工并将结果“发回”到机器,并存储在其中。之后,用户可以只过滤男性员工,或者有车,或者男性有车

编辑:据我所知,这会将整个查询显示为页面上的表格,并且它们将根据用户输入进行过滤。

我使用类似的解决方案,显示我需要显示的表格列,并将其他列添加为显示数据的 div 内的自定义 div 值。

<div class="card selected" id="26912" name="Afflicted Deserter" cost="3R" dualface="Werewolf Ransacker" exp="DKA" type="Creature - Human Werewolf">Afflicted Deserter || Werewolf Ransacker</div>

我使用 onclick 事件来选择 div 并将 div 值存储为变量。

  SelectCard = function  (card) {
    $('body').data({"currentID":$(card).attr('id'), "currentNAME":$(card).attr('name'), "currentCOST":$(card).attr('cost'), "currentTYPE":$(card).attr('type'), "currentEXP":$(card).attr('exp')})
    $('#cardIMG').attr('src',"mtg-img/" + $(card).attr('exp') + "/" + $(card).attr('name') + ".full.jpg");
  }

我将隐藏应用于我不想使用的所有条目。我还在向上/向下箭头上使用代码选择下一个/上一个 div。

MoveArrows = function  () {

$(document).keydown(function(e){

      if (e.keyCode == 40) { 
        if(chosen === "") {
            chosen = 0;
        } else if((chosen+1) < $('div.card').length) {
          // testvalue = $('div.card').next(".hidden").index();
          // console.log("testvalue:", testvalue)
            chosen++; 
        }
        $('div.card').removeClass('selected');
        while ($('#' + parentDiv).find('div.card').eq(chosen).hasClass('hidden')){
          chosen++;
        }
        $('#' + parentDiv).find('div.card').eq(chosen).addClass('selected');
        SelectCard( $('#' + parentDiv).find('div.card').eq(chosen))
        return false;
    }
    if (e.keyCode == 38) { 
        if(chosen === "") {
            chosen = 0;
        } else if(chosen > 0) {
            chosen--;            
        }
        $('div.card').removeClass('selected');
        while ($('#' + parentDiv).find('div.card').eq(chosen).hasClass('hidden')){
          chosen--;
        }
        $('#' + parentDiv).find('div.card').eq(chosen).addClass('selected');
        SelectCard( $('#' + parentDiv).find('div.card').eq(chosen))
        return false;
    }
})
}

执行循环以查找下一个非隐藏 div。

我的问题是,当条目太多时,向上/向下单击需要一段时间才能选择下一个 div。

数据表如何处理过滤结果?

4

2 回答 2

1

在 javascript 中进行客户端处理的一个选项是优秀的数据表jQuery插件。这将实现您删除额外的服务器调用以对原始查询进行排序或过滤的目标。

如果您希望数据在会话之间保持不变,您可能需要考虑HTML5 Web Storage

于 2013-01-06T16:52:37.457 回答
1

好吧,您可以获取所有数据并将其呈现在某个表中,然后该表具有排序、搜索等功能。为此,我使用http://www.datatables.net/

于 2013-01-06T16:56:13.723 回答