Comme indiqué dans mes commentaires.
Vous pouvez faire ce qui suit :
$(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');
}
});
});
});
Ce qui précède vous répliquera en cliquant sur chacun des liens de pagination.
Ce que je conseillerais de faire ensuite est de séparer le code PHP et HTML qui génère votre liste de "résultats" dans un fichier séparé.
Ainsi, sur la page qui affiche les résultats, vous pouvez simplement utiliser include('path-to-results-file.php');
qui fonctionnera pour les requêtes non ajax et vous pourrez alors faire :
Processus.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
Ce qui précède détecterait si une requête ajax a été faite et si c'est le cas, au lieu d'afficher toute la page, y compris les résultats, il n'affichera que les résultats et la pagination.
Mise à jour pour inclure une meilleure explication
Vous trouverez ci-dessous un exemple TRÈS simple de ce que je veux dire.
Processus actuel.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>
Nouveau 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>
Nouveau chemin vers le fichier de résultats.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>
Maintenant... Lorsque vous accédez à process.php
normalement via votre navigateur, ou lorsque javascript est désactivé. Cela fonctionnera simplement de la même manière que sans Javascript maintenant.
Lorsque vous accédez à process.php
puis cliquez sur l'un des liens de pagination (avec javascript activé), process.php
détectera que vous utilisez Ajax et ne renverra que le tableau des résultats.