Uma forma de fazer paginação exclusivamente com jQuery/Javascript é ter os dados num vetor Javascript e então aplicá-los numa tabela com uma função específica.
Por exemplo, você pode usar o PHP para gerar o seguinte vetor (ou retorná-lo em formato JSON numa chamada Ajax):
var dados = [
['Banana', '10,00'],
['Maça', '2,00'],
['Pera', '6,00'],
['Goiaba', '3,25'],
['Tamarindo', '1,50'],
['Cenoura', '0,75'],
['Alface', '0,99'],
['Tomate', '3,21'],
['Abacaxi', 'N/D'],
['Kiwi', '99,50'],
['Cebola', '1,15'],
['Alho', '1,02'],
['Abóbora', '4,75'],
['Pêssego', '2,33'],
['laranja', '2,99']
];
Imagine então um HTML básico contendo uma tabela vazia e os botões para avançar e retroceder, como segue:
<table>
<thead>
<tr>
<th>Descrição</th>
<th>Valor</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" align="center">Nenhum dado ainda...</td>
</tr>
</tbody>
</table>
<div>
<button id="anterior" disabled>‹ Anterior</button>
<button id="proximo" disabled>Próximo ›</button>
</div>
Aí você vai precisar de alguns elementos fixos no código Javascript para determinar o tamanho da página de dados e qual é a página atual:
var tamanhoPagina = 6;
var pagina = 0;
Também é necessário ter uma função para preencher os dados da página atual na tabela:
function paginar() {
$('table > tbody > tr').remove();
var tbody = $('table > tbody');
for (var i = pagina * tamanhoPagina; i < dados.length && i < (pagina + 1) * tamanhoPagina; i++) {
tbody.append(
$('<tr>')
.append($('<td>').append(dados[0]))
.append($('<td>').append(dados[1]))
)
}
}
Seria interessante uma função para ativar ou desativar os botões Próximo e Anterior quando estivesse na último ou na primeira página, respectivamente. Também poderia desativar caso tivesse apenas uma página:
function ajustarBotoes() {
$('#proximo').prop('disabled', dados.length <= tamanhoPagina || pagina > dados.length / tamanhoPagina - 1);
$('#anterior').prop('disabled', dados.length <= tamanhoPagina || pagina == 0);
}
Por fim, precisamos colocar o evento para avançar e retroceder nas páginas, além de inicializar tudo isso no carregamento da página HTML:
$(function() {
$('#proximo').click(function() {
if (pagina < dados.length / tamanhoPagina - 1) {
pagina++;
paginar();
ajustarBotoes();
}
});
$('#anterior').click(function() {
if (pagina > 0) {
pagina--;
paginar();
ajustarBotoes();
}
});
paginar();
ajustarBotoes();
});
Xo สล็อตออนไลน์ โปรสล็อต XO เกมออนไลน์ทำเงินยอดฮิตเกมสล็อต xopg.net คือเกมทำเงิน reeffutures2018 ผ่านทางออนไลน์อย่างหนึ่ง ที่เล่นง่าย และได้เงินไว แถมยังลงทุนด้วยเงินน้อย mavoixtavoie ทำเงินได้ตลอดเวลา ซึ่งหลายคนอาจได้เคยเห็นรีวิวเรื่องของ สล็อต xo สล็อตออนไลน์ ไว้มากมาย เทคนิคสล็อต ทั้งเรื่องการเล่นแล้วได้เงิน herbalpertpresents และเล่น สล็อต แล้วไม่ได้เงิน นั่นเองค่ะ ซึ่งการที่คุณจะเล่นได้เงินหรือไม่ได้เงินนั้น essentialsforasoul ส่วนหนึ่งก็เป็นในเรื่องของดวงเข้ามาเกี่ยวด้วย northbristol เพราะสล็อตเป็นเกมออนไลน์เสี่ยงโชค ทดลองเล่น xo เกมหนึ่งซึ่งจะมีสูตร หรือเทคนิคเข้ามาช่วย gclub เพื่อโกงดวงอยู่เสมอซึ่งในเว็บของเรา สมัคร xo ก็มีมาแนะนำไว้ให้เห็นกันมากมายหลายสูตร
I came across your blog’s link posted by a friend of mine on Facebook. Thanks for putting useful info on the internet. It’s tough to get these things these days. slot maxwin
It’s actually a cool and helpful piece of information. I’m happy that you just shared this useful information with us. Please keep us informed like this. Thank you for sharing. togel online
Hello there I am so glad I found your blog page, I really found you by mistake, while I was looking on Bing for something else, Anyways I am here now and would just like to say thanks a lot for a marvelous post and a all round entertaining blog (I also love the theme/design), I donít have time to browse it all at the moment but I have book-marked it and also included your RSS feeds, so when I have time I will be back to read more, Please do keep up the awesome job. 강남세이렌,선릉세이렌,세이렌쩜오