Jak je uvedeno v mých komentářích.
Můžete udělat následující:
$(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');
}
});
});
});
Výše uvedené bude replikovat kliknutí na každý ze stránkovacích odkazů.
Dále bych doporučil oddělit kód PHP a HTML, který generuje váš seznam „výsledků“, do samostatného souboru.
Tímto způsobem můžete na stránce, která zobrazuje výsledky, jednoduše použít include('path-to-results-file.php');
který bude fungovat pro non-ajax požadavky a pak byste mohli udělat:
Process.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
Výše uvedené by zjistilo, zda byl proveden požadavek ajax, a pokud ano, místo zobrazení celé stránky včetně výsledků jednoduše zobrazí pouze výsledky a stránkování.
Aktualizováno, aby obsahovalo lepší vysvětlení
Níže je VELMI jednoduchý příklad toho, co mám na mysli.
Aktuální 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>
Nový proces.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>
Nová cesta k souboru s výsledky.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>
Nyní... Když přejdete na process.php
obvykle prostřednictvím vašeho prohlížeče, nebo když je zakázán javascript. Jednoduše to bude fungovat stejně jako nyní bez Javascriptu.
Když přejdete na process.php
a poté klikněte na jeden z odkazů stránkování (s povoleným javascriptem), process.php
zjistí, že používáte Ajax, a pošle zpět pouze tabulku výsledků.