Come affermato nei miei commenti.
Potresti fare quanto segue:
$(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');
}
});
});
});
Quanto sopra ti replicherà facendo clic su ciascuno dei collegamenti di impaginazione.
Quello che consiglierei di fare dopo è separare il codice PHP e l'HTML che genera l'elenco dei "risultati" in un file separato.
In questo modo, nella pagina che mostra i risultati, puoi semplicemente usare include('path-to-results-file.php');
che funzionerà per richieste non Ajax e quindi potresti fare:
Process.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
Quanto sopra rileverebbe se è stata effettuata una richiesta ajax e in tal caso, invece di visualizzare l'intera pagina compresi i risultati, visualizzerà semplicemente solo i risultati e l'impaginazione.
Aggiornato per includere una spiegazione migliore
Di seguito è riportato un esempio MOLTO semplice di ciò che intendo.
Processo corrente.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>
Nuovo process.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>
Nuovo percorso-file-dei-risultati.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>
Ora... Quando vai su process.php
normalmente tramite il tuo browser o quando javascript è disabilitato. Funzionerà semplicemente allo stesso modo in cui funziona senza Javascript ora.
Quando vai su process.php
e poi clicca su uno dei link di impaginazione (con javascript abilitato), process.php
rileverà che stai usando Ajax e rispedirà solo la tabella dei risultati.