2013-01-06 16 views
1

對不起,這可能是一個非常基本的問題,但我從網上教我自己,不知道還有誰要問。如何在客戶機上存儲並重用php/mysql查詢?

我想知道是否有辦法執行php/mysql查詢到遠程服務器,然後將結果返回到客戶機。我打算使用查詢(2D)的結果由用戶訪問並執行另一個查詢。它必須由JavaScript腳本通過Ajax調用或以更好的方式訪問

我想這樣做因爲我想「加快」網站,並限制用戶在執行查詢時丟失的時間。

示例:用戶希望查看公司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和store 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。

datatables如何處理過濾結果?

+0

「稍後」,你的意思是在同一屆會議或不同的會議? – Barmar

+0

我的意思是同一屆會議 – deckoff

回答

1

在javascript中的客戶端處理選項是優秀的datatables jQuery插件。這樣可以實現刪除額外的服務器調用來排序或過濾原始查詢的目標。

如果你想在數據會話之間持續存在,你可能要考慮HTML5 Web Storage

+0

我編輯了我的問題,更具體一些,我需要關於數據表的一些信息。 – deckoff

+0

Datatables使用HTML表格。您的服務器將查詢結果輸出到一個表中,然後調用表元素上的Datatables。與目前的方法相比,您的優勢在於您可以直接進行排序,篩選,分頁和搜索。 – PassKit