http://advajax.anakin.us/index-pl.htm - na dole masz przykład stronicowania danych, tam jest to o co pytasz...
ja osobiście popełniłem podobną rzecz, link do strony:
http://ie.ae.krakow.pl/~kocot3p/lista.html, pliki JS:
http://ie.ae.krakow.pl/~kocot3p/include/dir.js, kod generujący xml:
<?php
header('Content-Type: text/xml'); $strKatalog = !empty($_GET['katalog']) ?
$_GET['katalog'] : 'baza'; require_once('../smarty/conf.php');
$resConnId = @pg_connect('host=localhost dbname='.$strUser.' user='.$strDbName.' password='.$strDBPASS); $resCheck = @pg_query($resConnId, 'select id, parent from dir where nazwa = ''.$strKatalog.'' order by id'); $resOdwiedzin = @pg_query($resConnId, 'select count(id) from stats');
if(!$resConnId || $intCheck != 1)
{
echo '<?xml version="1.0" ?>'; echo '<records katalogow="0" plikow="0" odwiedzin="0">'; }
else
{
$intOdwiedzin = $arrOdwiedzin[0];
$resLiczbaKat = pg_query($resConnId, 'select id,nazwa from dir where parent = '.$arrKatalog['id'].' order by id'); $resLiczbaPlikow = pg_query($resConnId, 'select nazwa,kod,size,data,czas,opis from pliki where katalog = '.$arrKatalog['id'].' order by id'); echo '<?xml version="1.0" ?>'; echo '<records katalogow="'.($intLiczbaKat = pg_num_rows($resLiczbaKat) + ($strKatalog == 'baza'?
0 : 1)).'" plikow="'.($intLiczbaPlikow = pg_num_rows($resLiczbaPlikow)).'" odwiedzin="'.$intOdwiedzin.'">'; $resParentName = pg_query($resConnId, 'select nazwa from dir where id = '.$arrKatalog['parent']); echo '<link>'.$arrParentName['nazwa'].'</link>'; {
if(!($strKatalog == 'baza' && $arrKat['nazwa'] == 'baza'))
{
echo '<link>'.$arrKat['nazwa'].'</link>'; }
}
{
$arrRozsz = explode('.',$arrPlik['nazwa']); echo 'nazwa="'.$arrPlik['nazwa'].'" '; echo 'wielkosc="'.$arrPlik['size'].'" '; echo 'data="'.$arrPlik['data'].'" '; echo 'opis="'.$arrPlik['opis'].'" '; echo 'kod="'.$arrPlik['kod'].'" '; echo 'ikonka="http://ie.ae.krakow.pl/~kocot3p/include/ikonki/'.((sizeof($arrRozsz) == 2
) ?
$arrRozsz[1] : 'unknown').'.png" '; }
}