Als PHP-Entwickler ist die Pear-Klassenbibliothek wahrscheinlich sehr nützlich. Wir wissen, dass Pear::Pager auf die Handhabung von Paging spezialisiert ist und Pear::HTML_AJAX eine Klassenbibliothek für Ajax-Anwendungen ist. Aber Pager wird nicht nur zum Paging von Links in HTML verwendet, es ist auch bereits für Ajax bereit, das beliebter ist als Super Girl. Schauen wir uns an, wie diese beiden Pakete integriert und angewendet werden.
Pager und Javascript
Nachdem wir nun den ersten Schritt getan haben, sollte Pager theoretisch bereits eine Integration mit Ajax möglich sein. Das Folgende ist ein Beispiel für Pager- und JavaScript-
Paging
PHP:
require_once'Pager/Pager.php';
$data=range(1,100);//ein Array von zu paginierenden Daten
$pager_params=array(
'mode' =>'Sliding',
'append' =>false, // GET-Parameter nicht an die URL anhängen
'pfad' =>'',
'fileName'=>'javascript:revealDiv(%d)', //Pager ersetzt „%d“ durch die Seitennummer...
'perPage' =>10,//zeige 10 Elemente pro Seite
'delta' =>5,
'itemData'=>$data,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
?>
<html>
<Kopf>
<script type="text/javascript"sprache="javascript">
varn_pages =<?phpecho$n_pages?>;
functionrevealDiv(n)
{
for(varcount=1;count<= n_pages;count++){
document.getElementById("page"+count).style.display ='none';
}
document.getElementById("page"+n).style.display ='block';
}
</script>
<style type="text/css">
div.page{
Hintergrund:#FFFF99;
border-top: 1px solid#FFBF99;
border-bottom: 1px solid#FFBF99;
}
</style>
</head>
<Körper>
<h1>PEAR::Pagerexample mit JavaScript</h1>
<?phpecho$links['pages'];?>
<hr />
<?php
for($i=1;$i<=$n_pages; ++$i){
echo'<div class="page" id="page'.$i.'">';
echo'<h2>Seite '.$i.'</h2>';
foreach($pager->getPageData($i)as$item){
echo'Item '.$item.'<br />';
}
echo'</div>';
}
?>
<hr />
<script type="text/javascript"sprache="javascript">
offenbarenDiv(1);
</script>
</body>
</html>
Im Beispiel werden alle Paging-Daten in ein div-Tag eingefügt und zwei wichtige Parameter definiert: path (leer) und fileName. fileName sollte ursprünglich der Dateiname des Links sein, wird hier jedoch durch Javascript ersetzt.
Das Ajax-Kampfbeispiel enthält drei Dateien: page.html, server.php und testdata.php
page.html
Verwenden Sie dynamisches javascript--server.php, um Daten zu verarbeiten, und rufen Sie HTML_AJAX.replace('target', 'testdata.php') auf, um den Inhalt des div durch die ID des Ziels zu ersetzen.
Klarer Text
PHP:
<html>
<Körper>
<h1>PEAR::Pagerexample mit AJAX</h1>
<script type="text/javascript"src="server.php?client=all"></script>
<div id="target">Ich bin das Ziel</div>
<script type="text/javascript">
HTML_AJAX.replace('target', 'testdata.php');
</script>
</body>
</html>
testdata.php
Dies ist ein sehr einfaches PHP-Programm, das die Paging-Daten abruft und HTML-
KLAREN TEXT
ausgibt
PHP:
<?php
require_once'Pager/Pager.php';
$data=range(1,100);//ein Array von zu paginierenden Daten
$pager_params=array(
'mode' =>'Sliding',
'append' =>false, // GET-Parameter nicht an die URL anhängen
'pfad' =>'',
'fileName'=>'javascript:HTML_AJAX.replace('target','testdata.php?pageID=%d');', //Pager ersetzt „%d“ durch die Seitennummer...
'perPage' =>10,//zeige 10 Elemente pro Seite
'Delta' =>1,
'itemData'=>$data,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
echo'<p>Dieser Container wird mit einem AJAX-Aufruf geladen</p>';
echo'<p><span class="datetime">DateTime: '.date('Ymd H:i:s').'</span></p>';
echo'<h3>Page '.$pager->getCurrentPageId().'</h3>';
foreach($pager->getPageData()as$item){
echo'Item '.$item.'<br />';
}
echo'<hr />'.$pager->links;
?>
Fügen Sie abschließend den Code des Behind-the-Scenes-Workers server.php ein und verwenden Sie HTML_AJAX_Server, um problematische Dinge wie Ajax
PLAIN TEXT
zu verarbeiten
PHP:
<?php
include'HTML/AJAX/Server.php';
$server=newHTML_AJAX_Server();
$server->handleRequest();
?>