0

多数のレコードで構成されるテーブル リストを作成しました。現在、毎回最大 10 個が表示されます。クリックするとテーブルに次の 10 レコードが表示されるボタンを作成しました。これを機能させるためにどのようにコーディングできるのだろうか?

function showAll(qstring,qtype){
 $("#vsdiv").show();
 var myurl="scripts/searchadmin.php"; 
 $.ajax({
  url: myurl, dataType:'json',data:{querystring:qstring,querytype:qtype},
  success: function(member){
   $("#resultstable").append('<tr class="yellow">'+
                                        '<th>#REC</th><th>JOINED</th><th>USER NAME</th>'+
                                        '<th>CONTACT</th><th>ADDRESS</th><th>PHONE</th>'+
                                        '<th>EMAIL</th><th>STATUS</th><th>SELECT</th></tr>');
   var j=0;var totrecs=1;
   for(var i=0;i<10;i++){
    $("#resultstable").append('<tr class="trow'+j+'">'+
                  '<td class="ids" id="z'+i+'">'+totrecs+'</td>'+
          '<td>'+member[i].jdate+'</td>'+
          '<td class="users"     id="username'+i+'">'+member[i].username+'</td>'+
          '<td id="contact'+i+'">'+member[i].fname+' '+member[i].lname+'</td>'+
          '<td id="myaddress'+i+'">'+member[i].address1+' '+member[i].town+'</td>'+
          '<td id="phone'+i+'">'+member[i].phone+'</td>'+
          '<td id="email'+i+'">'+member[i].email+'</td>'+
          '<td id="status'+i+'">'+member[i].status+'</td>'+
          '<td><input type="checkbox" name="whome" id="showMe'+i+'"'+
                                         'class="boxes" onclick="getMe('+i+')" /></td></tr>');  
                                         $('#sr').html('Showing 1 of '+member.length+' Members')

});


  totrecs++;
  j++;
 }
}
});
}

これは、最初の 10 レコードを表示する現在の機能ですが、ボタンをクリックしたときに次の 10 セットを表示するにはどうすればよいですか? 何か案は?

4

1 に答える 1

0

これを実現する 1 つの方法は、次のようなクエリに範囲情報を追加することです。

var rangestart = 0;
var rangeend = 9;
var rangeincrement = 10;
function showAll(qstring,qtype){
 $("#vsdiv").show();
 var myurl="scripts/searchadmin.php"; 
 $.ajax({
  url: myurl, dataType:'json',data:{querystring:qstring,querytype:qtype,rangestart:rangestart,rangeend:rangeend},
  success: function(member){
   $("#resultstable").append('<tr class="yellow">'+
                                        '<th>#REC</th><th>JOINED</th><th>USER NAME</th>'+
                                        '<th>CONTACT</th><th>ADDRESS</th><th>PHONE</th>'+
                                        '<th>EMAIL</th><th>STATUS</th><th>SELECT</th></tr>');
   var j=0;var totrecs=1;
   for(var i=0;i<10;i++){
    $("#resultstable").append('<tr class="trow'+j+'">'+
                  '<td class="ids" id="z'+i+'">'+totrecs+'</td>'+
          '<td>'+member[i].jdate+'</td>'+
          '<td class="users"     id="username'+i+'">'+member[i].username+'</td>'+
          '<td id="contact'+i+'">'+member[i].fname+' '+member[i].lname+'</td>'+
          '<td id="myaddress'+i+'">'+member[i].address1+' '+member[i].town+'</td>'+
          '<td id="phone'+i+'">'+member[i].phone+'</td>'+
          '<td id="email'+i+'">'+member[i].email+'</td>'+
          '<td id="status'+i+'">'+member[i].status+'</td>'+
          '<td><input type="checkbox" name="whome" id="showMe'+i+'"'+
                                         'class="boxes" onclick="getMe('+i+')" /></td></tr>');  
                                         $('#sr').html('Showing 1 of '+member.length+' Members')

});


  totrecs++;
  j++;
 }
 rangestart += rangeincrement; // this assigns the new range start value
 rangeend += rangeincrement; // assign new range end value
}
});
}

その後、ボタンは同じクエリを再度実行します。また、必要な範囲のみを返すようにサーバー側でクエリを変更する必要があります。

SELECT * FROM xyz WHERE xyz.somevalue = querystring LIMIT rangestart, rangeend;

それはあなたが探している結果を得るはずです。

于 2012-11-08T00:17:13.563 に答える