2016-09-19 6 views
-1

私は返されたクエリレコードを「ページング」型に分割したいので、最初の51レコードを表示して残りを配列に追加したいと思っています後で別のページに移動したいときにフェッチします。SQLクエリを分割した配列を配列に返す

私は、ページ上でうまく最初の51件の結果を表示することができますが、私はこれまで51

私のコードで、レコードの残りの部分を分割する方法を見つけるとのトラブルを抱えています:

var arrayHTML  = []; 

for(var key in data){ 
    if(data.hasOwnProperty(key)) { 
     if (totalX >= 51) { 
      //Start putting the results into an array. 51 results per array 
     }else if (x > 1) { 
      x = 0; 
      _userName = data[key].fname + ' ' + data[key].lname; 

      populateCards(_userName, 
          data[key].email, 
          data[key].img, 
          data[key].school, 
          data[key].userID, 
          true, 
          data[key].encoded); 
     } else { 
      _userName = data[key].fname + ' ' + data[key].lname; 

      populateCards(_userName, 
          data[key].email, 
          data[key].img, 
          data[key].school, 
          data[key].userID, 
          false, 
          data[key].encoded); 
      x++; 
     } 

     totalRowCnt = data[key].totalRows; 
     _tmpMath = Math.round(totalRowCnt/totalNum); 
     total++; 
     totalX++; 

     console.log('totalX: ' + totalX) 
    } 
} 

51にヒットした後は、(合計X> = 51){の場合はになります。これは、残りの部分を配列スロットあたり51に分割する方法を解明しようとしているところです。

コードは、それがすべての3レコードに到達するまで上記ループであり、それは、それはちょうどそれがレコード51に到達するまで、その実行を続け3つのレコードの1つの行を有するように、その後< BR />を確定します。 行ごとに17行の3レコード。はまだ上< BR />を入れていない機能を言っている間に最後に< BR />を置くために機能を語っています。

助けがあれば助かります。以下は

答えて

0

JavaScriptのコード:

// this is a simple pager function that return part of the array you want 
// so you can easily loop over it 
// @param page you want 
// @param how many values you want 
// @return the sliced array with the parts you want 
//  (this will return an empty array if your page is out of bound 
//  e.g. when you array only contains less than 51 and you tell it you want page 2) 
array_pager = function (array, page, show) { 
    var start = (page -1) * show; // this sets the offset 
    return array.slice(start, start + show); 
} 

そして、あなたはこのように、この機能を使用することができます::

あなたのコードにこの機能を追加

// assuming the array's name is data 
var this_page = array_pager(data, 1, 51); // get this_page 1, with 51 values 

// then you can safely loop over it 
for(var key in this_page) { 
    _userName = this_page[key].fname + ' ' + this_page[key].lname; 

    populateCards(_userName, 
       this_page[key].email, 
       this_page[key].img, 
       this_page[key].school, 
       this_page[key].userID, 
       false, 
       this_page[key].encoded); 
} 

// for page 2: array_pager(data, 2, 51) ... 
// 10 per page: array_pager(data, 1, 10) ... I think you get it now