Както е посочено в моите коментари.
Можете да направите следното:
$(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');
}
});
});
});
Горното ще повтори, че щракнете върху всяка от връзките за пагинация.
Това, което бих посъветвал да направите след това, е да разделите PHP кода и HTML, който генерира вашия списък с "резултати" в отделен файл.
По този начин на страницата, която показва резултатите, можете просто да използвате include('path-to-results-file.php');
което ще работи за заявки без ajax и тогава можете да направите:
Process.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
include('path-to-results-file.php');
die();
}
Горното ще открие дали е направена ajax заявка и ако е така, вместо да показва цялата страница, включително резултатите, просто ще покаже само резултатите и пагинацията.
Актуализирано, за да включва по-добро обяснение
По-долу е МНОГО прост пример за това, което имам предвид.
Текущ процес.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>
Нов 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>
Нов 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>
Сега... Когато отидете на process.php
обикновено през вашия браузър или когато JavaScript е деактивиран. Той просто ще работи по същия начин, както без Javascript сега.
Когато отидете на process.php
и след това щракнете върху една от връзките за пагинация (с активиран javascript), process.php
ще открие, че използвате Ajax, и ще изпрати обратно таблицата с резултатите.