Pear::Pager和AJAX的整合應用

作爲一個PHP開發人員來說,大概很讓人受用的一個東東就是Pear的類庫了。我們知道,Pear::Pager是專門處理分頁的,而Pear::HTML_AJAX則是Ajax應用的一些類庫。但是Pager也不僅僅是只能用于html的分頁鏈接,它已經爲比超女還紅的Ajax做好了准備,下面看看這兩個包如何整合應用。

Pager and Javascript

現在走出第一步,Pager已經能夠構建出javascript的鏈接了,和Ajax整合,理論上應該也是能夠實現的,下面是Pager和javascript分頁的一個例子:

PLAIN TEXT

PHP:

require_once'Pager/Pager.php';

$data=range(1,100);//an array of data to paginate

$pager_params=array(

'mode' =>'Sliding',

'append' =>false, //don't append the GET parameters to the url

'path' =>'',

'fileName'=>'javascript:revealDiv(%d)', //Pager replaces "%d" with the page number...

'perPage' =>10,//show 10 items per page

'delta' =>5,

'itemData'=>$data,

);

$pager= & Pager::factory($pager_params);

$n_pages=$pager->numPages();

$links=$pager->getLinks();

?>

<html>

<head>

<script type="text/javascript"language="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{

background:#FFFF99;

border-top: 1px solid#FFBF99;

border-bottom: 1px solid#FFBF99;

}

</style>

</head>

<body>

<h1>PEAR::Pagerexample with JavaScript</h1>

<?phpecho$links['pages'];?>

<hr />

<?php

for($i=1;$i<=$n_pages; ++$i){

echo'<div class="page" id="page'.$i.'">';

echo'<h2>Page '.$i.'</h2>';

foreach($pager->getPageData($i)as$item){

echo'Item '.$item.'<br />';

}

echo'</div>';

}

?>

<hr />

<script type="text/javascript"language="javascript">

revealDiv(1);

</script>

</body>

</html>

例子中把分頁的所有數據放入一個div標簽,定義了兩個比較重要的參數就是path(爲空)和fileName,fileName原本應該是鏈接的文件名,但是這裏用javascript替換了。

Ajax上陣

這個例子包括三個文件page.html,server.php,testdata.php

page.html

用動態javascript--server.php來處理數據,調用HTML_AJAX.replace('target', 'testdata.php')來替換id爲target這個div的內容。

PLAIN TEXT

PHP:

<html>

<body>

<h1>PEAR::Pagerexample with AJAX</h1>

<script type="text/javascript"src="server.php?client=all"></script>

<div id="target">I'm the target</div>

<script type="text/javascript">

HTML_AJAX.replace('target', 'testdata.php');

</script>

</body>

</html>

testdata.php

這是個很簡單的php程序,取到分頁數據並輸出html

PLAIN TEXT

PHP:

<?php

require_once'Pager/Pager.php';

$data=range(1,100);//an array of data to paginate

$pager_params=array(

'mode' =>'Sliding',

'append' =>false, //don't append the GET parameters to the url

'path' =>'',

'fileName'=>'javascript:HTML_AJAX.replace(\'target\',\'testdata.php?pageID=%d\');', //Pager replaces "%d" with the page number...

'perPage' =>10,//show 10 items per page

'delta' =>1,

'itemData'=>$data,

);

$pager= & Pager::factory($pager_params);

$n_pages=$pager->numPages();

$links=$pager->getLinks();

echo'<p>This container is loaded with an AJAX call</p>';

echo'<p><span class="datetime">DateTime: '.date('Y-m-d H:i:s').'</span></p>';

echo'<h3>Page '.$pager->getCurrentPageId().'</h3>';

foreach($pager->getPageData()as$item){

echo'Item '.$item.'<br />';

}

echo'<hr />'.$pager->links;

?>

最後,貼上幕後工作者server.php的代碼

用HTML_AJAX_Server來處理ajax這些煩心事吧

PLAIN TEXT

PHP:

<?php

include'HTML/AJAX/Server.php';

$server=newHTML_AJAX_Server();

$server->handleRequest();

?>

PEAR探奇之PEAR::Pager [二]
Sliding.php <?php require_once 'Pager/Pager.php'; $month = 'september'; $params = array( 'mode' => 'Sliding', 'append' => false, 'urlVar' => 'num', 'path' =...查看完整版>>PEAR探奇之PEAR::Pager [二]
 
Pear::Pager分頁類簡介
Pear的Pager分頁類是一個很好用的php分頁類,擴展性很強,能夠適應各種分頁情況的需求,至少我在幾年間大大小小的項目裏,基本上沒有爲分頁額外寫過代碼,全部都是用的Pager,足見Pager的可用性之強.下面用代碼來看看它的使...查看完整版>>Pear::Pager分頁類簡介
 
PEAR探奇之PEAR::Pager
  在頁面上顯示大量數據,是WEB項目中很常見的一個作法,但限于屏幕的大小,爲了便于用戶閱讀,我們通常需要將數據分頁顯示,所以分頁功能是大部份項目不可缺少的。PEAR::Pager是一個功能強大的分頁類,使用非常方...查看完整版>>PEAR探奇之PEAR::Pager
 
PEAR探奇之PEAR::Pager [一]
PEAR探奇之PEAR::Pager2005-09-29Haohappy<http://blog.csdn.net/haohappy2004>在頁面上顯示大量數據,是WEB項目中很常見的一個作法,但限于屏幕的大小,爲了便于用戶閱讀,我們通常需要將數據分頁顯示,所以分...查看完整版>>PEAR探奇之PEAR::Pager [一]
 
AJAX應用之注冊用戶即時檢測
作者blog: AJAX的無刷新機制使得在注冊系統中對于注冊名稱的檢測能即時顯示。常見的用戶注冊是用戶輸入用戶名,後台程序檢測數據庫中用戶名是否重複而做出注冊的成功與失敗之提示(當用戶注冊重名時將返回重新注冊)...查看完整版>>AJAX應用之注冊用戶即時檢測
 
WEB2.0中AJAX應用的詳細探討
最近互聯網上比較火熱的話題當然是關于WEB2.0的應用,其中AJAX又是WEB2.0的核心之一。AJAX是Asynchronous JavaScript and XML 的縮寫。它並不是一門新的語言或技術,它實際上是幾項技術按一定的方式組合在一在同共的...查看完整版>>WEB2.0中AJAX應用的詳細探討
 
AJAX技術經驗談:技術原理及應用
  作者:論壇整理  AJAX淺談   AJAX技術在1998年前後開始應用于Web,之後經由Google把它發揚光大,讓更多人了解到JavaScript原來可以這樣使用,而不再是過去廣告字顯示或畫面漸層等刻版印象。如今AJAX已不再是...查看完整版>>AJAX技術經驗談:技術原理及應用
 
AJAX技術經驗談:技術原理及應用
  AJAX淺談  AJAX技術在1998年前後開始應用于Web,之後經由Google把它發揚光大,讓更多人了解到JavaScript原來可以這樣使用,而不再是過去廣告字顯示或畫面漸層等刻版印象。如今AJAX已不再是新名詞或新技術,而最...查看完整版>>AJAX技術經驗談:技術原理及應用
 
WEB2.0中AJAX應用的詳細探討
  最近互聯網上比較火熱的話題當然是關于WEB2.0的應用,其中AJAX又是WEB2.0的核心之一。AJAX是Asynchronous JavaScript and XML 的縮寫。它並不是一門新的語言或技術,它實際上是幾項技術按一定的方式組合在一在同...查看完整版>>WEB2.0中AJAX應用的詳細探討
 
 
回到王朝網路移動版首頁