1

申し訳ありませんが、これは非常に基本的な質問かもしれませんが、私は Web から独学していて、他に誰に質問すればよいかわかりません。

リモート サーバーに対して php/mysql クエリを実行し、その結果をクライアント マシンに返す方法があるかどうかを知りたいです。クエリの結果 (2D) を使用してユーザーがアクセスし、別のクエリを実行する予定です。ajax呼び出しまたはより良い方法でjavascriptスクリプトからアクセスする必要があります

サイトを「高速化」し、クエリの実行中にユーザーが失う時間を制限したいので、これを実行したいと思います。

例: ユーザーは、会社 X のすべての従業員のデータを見たいと考えています。Php は、会社 X のすべての従業員を選択し、結果をマシンに「送り返し」、そこに保存します。後で、ユーザーは男性、または車を持っている従業員、または男性で車を持っている従業員のみをフィルタリングできます。

EDIT:私が得たように、これはクエリ全体をページ上のテーブルとして表示し、ユーザー入力に基づいてフィルタリングします。

同様のソリューションを使用して、表示する必要があるテーブル列を表示し、データを表示する 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 に答える