Como desenvolvedor PHP, uma coisa que provavelmente é muito útil é a biblioteca de classes Pear. Sabemos que Pear::Pager é especializado em lidar com paginação e Pear::HTML_AJAX é uma biblioteca de classes para aplicativos Ajax. Mas o Pager não é usado apenas para paginação de links em HTML, ele já está pronto para Ajax, que é mais popular que o Super Girl. Vamos dar uma olhada em como esses dois pacotes são integrados e aplicados.
Pager e Javascript
Agora que demos o primeiro passo, o Pager já pode construir links JavaScript. A integração com Ajax deveria ser possível em teoria. A seguir está um exemplo de paginação Pager e JavaScript:
PLAIN TEXT.
PHP:
require_once'Pager/Pager.php';
$data=range(1.100);//um array de dados para paginar
$pager_params=array(
'modo' =>'Deslizando',
'append' =>false, //não anexe os parâmetros GET ao URL
'caminho' =>'',
'fileName'=>'javascript:revealDiv(%d)', //Pager substitui "%d" pelo número da página...
'perPage' =>10, // mostra 10 itens por página
'delta' => 5,
'itemDados'=>$dados,
);
$pager= & Pager::fábrica($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
?>
<html>
<cabeça>
<script type="text/javascript"idioma="javascript">
varn_pages =<?phpecho$n_pages?>;
funçãorevealDiv(n)
{
for(varcount=1;count<= n_pages;count++){
document.getElementById("página"+contagem).style.display ='none';
}
document.getElementById("página"+n).style.display ='bloco';
}
</script>
<style type="texto/css">
div.página{
plano de fundo:#FFFF99;
borda superior: 1px sólido#FFBF99;
borda inferior: 1px sólido#FFBF99;
}
</estilo>
</head>
<corpo>
<h1>PEAR::Pagerexample com JavaScript</h1>
<?phpecho$links['páginas'];?>
<hr />
<?php
for($i=1;$i<=$n_pages; ++$i){
echo'<div class="page" id="page'.$i.'">';
echo'<h2>Página '.$i.'</h2>';
foreach($pager->getPageData($i)as$item){
echo'Item '.$item.'<br />';
}
eco'</div>';
}
?>
<hr />
<script type="text/javascript"idioma="javascript">
revelarDiv(1);
</script>
</body>
</html>
No exemplo, todos os dados de paginação são colocados em uma tag div e dois parâmetros importantes são definidos: path (vazio) e fileName. fileName era originalmente suposto ser o nome do arquivo do link, mas é substituído por javascript aqui.
O exemplo de batalha Ajax inclui três arquivos page.html, server.php, testdata.php
página.html
Use javascript dinâmico--server.php para processar dados e chame HTML_AJAX.replace('target', 'testdata.php') para substituir o conteúdo do div pelo id do alvo.
TEXTO SIMPLES
PHP:
<html>
<corpo>
<h1>PEAR::Pagerexample com AJAX</h1>
<script type="text/javascript"src="server.php?client=all"></script>
<div id="target">Eu sou o alvo</div>
<script type="texto/javascript">
HTML_AJAX.replace('destino', 'testdata.php');
</script>
</body>
</html>
dados de teste.php
Este é um programa php muito simples que obtém os dados de paginação e gera html
PLAIN TEXT
PHP:
<?php
require_once'Pager/Pager.php';
$data=range(1.100);//um array de dados para paginar
$pager_params=array(
'modo' =>'Deslizando',
'append' =>false, //não anexe os parâmetros GET ao URL
'caminho' =>'',
'fileName'=>'javascript:HTML_AJAX.replace('target','testdata.php?pageID=%d');', //Pager substitui "%d" pelo número da página...
'perPage' =>10, // mostra 10 itens por página
'delta' =>1,
'itemDados'=>$dados,
);
$pager= & Pager::fábrica($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
echo'<p>Este contêiner é carregado com uma chamada AJAX</p>';
echo'<p><span class="datetime">DateTime: '.date('Ymd H:i:s').'</span></p>';
echo'<h3>Página '.$pager->getCurrentPageId().'</h3>';
foreach($pager->getPageData()as$item){
echo'Item '.$item.'<br />';
}
echo'<hr />'.$pager->links;
?>
Por fim, cole o código do trabalhador de bastidores server.php e use HTML_AJAX_Server para lidar com coisas problemáticas como Ajax
.
PHP:
<?php
include'HTML/AJAX/Server.php';
$servidor=newHTML_AJAX_Server();
$servidor->handleRequest();
?>