jQuery分頁類。。。
阿新 • • 發佈:2019-02-11
$pageScript = <<<SCR
<script type='text/javascript'>
function (){}
$.ajax()
</script>
SCR;
這種寫法,在PHP中定義一段script函式,<<<SCR SCR;是定界符。SCR是隨便起的名字,但是定界符的後半截必須頂格寫
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首頁');
sprintf函式,函式把格式化的字串寫寫入一個變數中。也就是說最少要有一個站位字元和替換的變數。第一個引數為字串,第二個引數就是第一個站位字元的值。。。。%s是指字串,具體請看w3cschool的手冊,直接搜尋就有
<{config_load file="site.conf"}>
<script type="text/javascript" src="<{#js_path#}>jquery-1.4.2.min.js"></script>
在TPL中載入配置檔案。。。讀取配置檔案中的函式 <{#js_path#}>
public function pageAction(){
//命令模型層處理資料
$page = isset($_REQUEST['page'])?$_REQUEST['page']:1; //.....若有page的值,則$page=$_REQUEST['page'],沒有則$page=1
$pagesize = 2; //定義一頁幾條記錄
$offset = ($page-1)*$pagesize; //計算出偏移量,偏移量是查詢資料庫是跳過的記錄數
$pageModel = new pageModel("localhost","root","","page");
$array = $pageModel ->getPageList($offset,$pagesize); //呼叫模型層,模型層返回了所有記錄和總記錄數
$content = $array['list'];
$total = $array['total']; //將模型層返回的賦值給。。。。
//命令檢視層顯示資料
$this->smarty->assign('list',$content); //賦值。。不解釋
$pageHelper = new pageHelper();
$page_html = $pageHelper ->show($total,$pagesize,$page);//呼叫pageHelper。這個下面細說。。。
$this->smarty->assign('page_html',$page_html); //將pageHelper()返回的東西,賦值給page_html。。。不解釋
$this->smarty->display('page.tpl');
}
細細的說下pageHelper.class.php
public function show($total,$pagesize,$page){
$pages = ceil($total/$pagesize);
$info = "總共".$total."條記錄 分為".$pages."頁 當前第".$page."頁";
$first = 1;
$prev = $page-1;
$next = $page+1;
$last = $pages;
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首頁');
$prev_html= '';
if($page>1){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'上一頁');
}
if($page<$pages){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'下一頁');
}
//下拉列表項
$select_html = "<select onchange='goPage(this.value)'>";
for($i=1;$i<=$pages;$i++){
if($i==$page){
$select_html .= sprintf("<option value='%s' selected>%s</option>",$i,$i);
}else{
$select_html .= sprintf("<option value='%s'>%s</option>",$i,$i);
}
}
$select_html .="</select>";
$last_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$last,'尾頁');
$pageScript = <<<SCR
SCR;
return $info.' '.$first_html.' '.$prev_html.' '.$next_html.' '.$last_html.' '.$pageScript.' '.$select_page.' '.$select_html;
}
一點一點看。開始的幾個值是從呼叫函式的時候從函式引數傳過來的,$info沒啥說的,
下面定義的四個變數是用來區別顯示首頁,尾頁下一頁上一頁的。。。這個沒啥技術含量。想得到就很簡單。
那四個變數只是四個頁碼。要讓他可以點還要把它變成連線,所以。。。就有後面這幾部了。sprintf()函式,上面說了。至於if括號裡的,是保證在第一頁的時候不顯示首頁,。。。之類的。。。。手懶,見諒。哦對了。。。還有<a href='javascript:goPage(%s)'>%s</a>這種寫法。。。記住就行了。。。貌似沒啥為什麼
下拉列表部分:+=的部分知道吧。在PHP中連線符不是+是.所以+=在php中是.=。。。迴圈通過總頁數來輸出<option></option>的個數。程式碼看著抽象,其實最後輸出的就是一個下拉選單。之所以這麼麻煩是因為選單裡的值都不是寫死的。還有在<select>標籤中綁定了一個goPage函式,下面定義的
$pageScript是定義了一個script函式。。。
最後給呼叫它的控制器,返回一個長長的字串。。。。。把前面所有的都返回了。至於那個script函式,返回之後再tpl檔案中一輸出直接就變成函數了
<script type='text/javascript'>
function (){}
$.ajax()
</script>
SCR;
這種寫法,在PHP中定義一段script函式,<<<SCR SCR;是定界符。SCR是隨便起的名字,但是定界符的後半截必須頂格寫
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首頁');
sprintf函式,函式把格式化的字串寫寫入一個變數中。也就是說最少要有一個站位字元和替換的變數。第一個引數為字串,第二個引數就是第一個站位字元的值。。。。%s是指字串,具體請看w3cschool的手冊,直接搜尋就有
<{config_load file="site.conf"}>
<script type="text/javascript" src="<{#js_path#}>jquery-1.4.2.min.js"></script>
在TPL中載入配置檔案。。。讀取配置檔案中的函式 <{#js_path#}>
public function pageAction(){
//命令模型層處理資料
$page = isset($_REQUEST['page'])?$_REQUEST['page']:1; //.....若有page的值,則$page=$_REQUEST['page'],沒有則$page=1
$pagesize = 2; //定義一頁幾條記錄
$offset = ($page-1)*$pagesize; //計算出偏移量,偏移量是查詢資料庫是跳過的記錄數
$pageModel = new pageModel("localhost","root","","page");
$array = $pageModel ->getPageList($offset,$pagesize); //呼叫模型層,模型層返回了所有記錄和總記錄數
$content = $array['list'];
$total = $array['total']; //將模型層返回的賦值給。。。。
//命令檢視層顯示資料
$this->smarty->assign('list',$content); //賦值。。不解釋
$pageHelper = new pageHelper();
$page_html = $pageHelper ->show($total,$pagesize,$page);//呼叫pageHelper。這個下面細說。。。
$this->smarty->assign('page_html',$page_html); //將pageHelper()返回的東西,賦值給page_html。。。不解釋
$this->smarty->display('page.tpl');
}
細細的說下pageHelper.class.php
public function show($total,$pagesize,$page){
$pages = ceil($total/$pagesize);
$info = "總共".$total."條記錄 分為".$pages."頁 當前第".$page."頁";
$first = 1;
$prev = $page-1;
$next = $page+1;
$last = $pages;
$first_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$first,'首頁');
$prev_html= '';
if($page>1){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'上一頁');
}
if($page<$pages){
$prev_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$prev,'下一頁');
}
//下拉列表項
$select_html = "<select onchange='goPage(this.value)'>";
for($i=1;$i<=$pages;$i++){
if($i==$page){
$select_html .= sprintf("<option value='%s' selected>%s</option>",$i,$i);
}else{
$select_html .= sprintf("<option value='%s'>%s</option>",$i,$i);
}
}
$select_html .="</select>";
$last_html = sprintf("<a href='javascript:goPage(%s)'>%s</a>",$last,'尾頁');
$pageScript = <<<SCR
SCR;
return $info.' '.$first_html.' '.$prev_html.' '.$next_html.' '.$last_html.' '.$pageScript.' '.$select_page.' '.$select_html;
}
一點一點看。開始的幾個值是從呼叫函式的時候從函式引數傳過來的,$info沒啥說的,
下面定義的四個變數是用來區別顯示首頁,尾頁下一頁上一頁的。。。這個沒啥技術含量。想得到就很簡單。
那四個變數只是四個頁碼。要讓他可以點還要把它變成連線,所以。。。就有後面這幾部了。sprintf()函式,上面說了。至於if括號裡的,是保證在第一頁的時候不顯示首頁,。。。之類的。。。。手懶,見諒。哦對了。。。還有<a href='javascript:goPage(%s)'>%s</a>這種寫法。。。記住就行了。。。貌似沒啥為什麼
下拉列表部分:+=的部分知道吧。在PHP中連線符不是+是.所以+=在php中是.=。。。迴圈通過總頁數來輸出<option></option>的個數。程式碼看著抽象,其實最後輸出的就是一個下拉選單。之所以這麼麻煩是因為選單裡的值都不是寫死的。還有在<select>標籤中綁定了一個goPage函式,下面定義的
$pageScript是定義了一個script函式。。。
最後給呼叫它的控制器,返回一個長長的字串。。。。。把前面所有的都返回了。至於那個script函式,返回之後再tpl檔案中一輸出直接就變成函數了