Som nævnt i mine kommentarer.
Du kan gøre følgende:
$(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');
}
});
});
});
Ovenstående vil replikere dig ved at klikke på hvert af pagineringslinkene.
Det, jeg vil råde dig til at gøre, er at adskille PHP-koden og HTML, der genererer din "resultat"-liste, i en separat fil.
På denne måde, på siden, der viser resultaterne, kan du blot bruge include('path-to-results-file.php');
som vil fungere for ikke-ajax-anmodninger, og så kan du gøre:
Process.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
Ovenstående vil opdage, om der er foretaget en ajax-anmodning, og i så fald vil den i stedet for at vise hele siden inklusive resultaterne blot kun vise resultaterne og sideinddelingen.
Opdateret for at inkludere en bedre forklaring
Nedenfor er et MEGET simpelt eksempel på, hvad jeg mener.
Nuværende proces.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>
Ny 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>
Ny path-to-results-file.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>
Nu... Når du går til process.php
normalt via din browser, eller når javascript er deaktiveret. Det vil simpelthen fungere på samme måde, som det gør uden Javascript nu.
Når du går til process.php
og klik derefter på et af pagineringslinkene (med javascript aktiveret), process.php
vil opdage, at du bruger Ajax og kun sende resultattabellen tilbage.