2012-11-02 262 views
0

Я создаю записи через PHP/SQL. Код отображает 5 записей. Я пытаюсь запрограммировать так, чтобы при нажатии следующей кнопки появятся следующие 5 записей.Paginate records

Код:

function show(qstring,qtype) 
{ 
$("#vsdiv").show(); 
var myurl="scripts/searchpage.php"; 
$.ajax({url: myurl, 
     dataType:'json', 
     data:{querystring:qstring,querytype:qtype}, 
     success: function(member) 
     { 
      $("#results").append('<tr class="me">'+'<th>#REC</th> <th>name</th><th>surname</th>'); 
      var j=0; 
      var totrecs=1; 
      for(var i=0;i<5;i++) 
      { 
       $("#results").append('<tr class="rows'+j+'">'+' 
             <td class="ids" id="z'+i+'">'+totrecs+'</td>'+' 
             <td>'+name[i].bdate+'</td>'+' 
             <td class="users" id="username'+i+'">'+member[i].username+'</td>'+' 
             <td id="contact'+i+'">'+member[i].fname+' '+member[i].lname+'</td>'+' 
             <td><input type="checkbox" name="whome" id="showMe'+i+'"'+' 
             class="boxes" onclick="getMe('+i+')" /></td></tr>'); 
       totrecs++; 
       j++; 
      } 
     } 
     }); 
} 

И для кнопки HTML:

<input type="button" id="next5" title="Next 5 Records" disabled="disabled" value="Next 5>>" /> 
+1

, пожалуйста, предоставьте подробную информацию об ошибке/ошибке, иначе вы поставите задачу ответа на свой вопрос намного больше. – Sheena

ответ

0

То, что вы хотите это LIMIT ключевое слово. Вы можете задать записи, чтобы начать и закончить так:

blah sql statment blah LIMIT 1,5; 

Ваш следующий запрос будет:

blah slq statement blah LIMIT 6,10; 

Если вы хотите быть в состоянии показать все только один запрос ознакомьтесь с JQuery библиотека:

http://datatables.net/

+0

Я не хочу менять инструкцию sql, просто получить функцию для js? –

+0

Вы можете заглянуть в библиотеку JQuery datatable. См. Http://datatables.net/ Я просто использовал его в приложении, которое я закончил, и он отлично работает. – thatidiotguy

0

Вы можете просто хранить значение, возвращаемое из вызова Ajax в яваскрипте переменного. Затем также сохраните начальную позицию в массиве для следующих пяти записей.

var returnedData = null; 
var startingPos = 0; 

function addFiveResults(){ 
    //Your code to append to results 
    //from startingPos to startingPos + 5 
    startingPos += 5; 
} 

$.ajax(... 
success: function(member) { 
    returnedData = member; 
    startingPos = 0; 
    addFiveResults(); 
}); 

Также сделайте onclick call addFiveResults();

Это уменьшит количество запросов ajax и станет более универсальным. Вы можете легко сделать жестко закодированную 5, чтобы быть другой переменной, которая может быть изменена.