Conforme informado em meus comentários.
Você poderia fazer o seguinte:
$(document).ready(function()
{
$('.paginate').live('click', function(e)
{
e.preventDefault();
var btnPage = $(this);
$.ajax(
{
url : btnPage.attr('href'),
success : function(resp)
{
// replace current results with new results.
$('#project_section').html(resp);
},
error : function()
{
window.location.href = btnPage.attr('href');
}
});
});
});
O acima irá replicar você clicando em cada um dos links de paginação.
O que eu aconselharia a fazer a seguir é separar o código PHP e o HTML que gera sua lista de "resultados" em um arquivo separado.
Dessa forma, na página que exibe os resultados, você pode simplesmente usar
include('path-to-results-file.php');
que funcionará para solicitações não-ajax e você poderá fazer:Processo.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
O acima detectaria se uma solicitação ajax foi feita e, em caso afirmativo, em vez de exibir a página inteira, incluindo os resultados, ele simplesmente exibirá apenas os resultados e a paginação.
Atualizado para incluir uma explicação melhor
Abaixo está um exemplo muito simples do que quero dizer.
Processo atual.php
<?
// currently contains all of the code required
// to query the database etc.
?>
<html>
<head>...</head>
<body>
<!-- header content -->
<table>
<?
// currently contains all of the code required to display
// the results table and pagination links.
?>
</table>
<!-- footer content -->
</body>
</html>
Novo processo.php
<?
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
?>
<html>
<head>...</head>
<body>
<!-- header content -->
<? include('path-to-results-file.php'); ?>
<!-- footer content -->
</body>
</html>
Novo caminho para arquivo de resultados.php
<?
// currently contains all of the code required
// to query the database etc.
?>
<table>
<?
// currently contains all of the code required to display
// the results table and pagination links.
?>
</table>
Agora... Quando você for para
process.php
normalmente através do seu navegador, ou quando o javascript está desabilitado. Ele simplesmente funcionará da mesma maneira que sem Javascript agora. Quando você vai para
process.php
e clique em um dos links de paginação (com javascript habilitado), process.php
detectará que você está usando Ajax e apenas enviará de volta a tabela de resultados.