php - 如何存储在客户端机器上并重复使用 php/mysql 查询?

标签 php javascript html

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

我想知道是否有办法对远程服务器执行 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。

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

最佳答案

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

如果您希望数据在 session 之间持续存在,您可能需要考虑 HTML5 Web Storage

关于php - 如何存储在客户端机器上并重复使用 php/mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184373/

相关文章:

php - MVC、DI(依赖注入(inject))和从 Controller 创建模型实例

javascript - 如何将 Google Sheet 日期数值转换为 JavaScript 日期?

html - 如何在不使用 960gs 的内部 div 的情况下向 div 添加填充?

javascript - 多个隐藏显示div

javascript - 将 php 数组从 php 文件引入 js 文件中的 javascript 数组

php - Codeigniter 3.1.6 - 如何从 url 中删除 index.php

php - 根据值将多维数组拆分为一组数组的有效方法是什么?

javascript - 无法使用 jquery 获取 html5 数据属性

javascript - 捕获脚本生成的 mailto URI

javascript - 附加到 div 时 gif 图像的相对路径会中断吗?