解析CI的AJAX分頁 另類實現(xiàn)方法
更新時間:2013年06月27日 12:58:27 作者:
本篇文章是對CI的AJAX分頁 另類實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下
看了一下CI的分頁類沒有寫到關(guān)于AJAX的內(nèi)容,也在論壇上看到其他幾位大神寫的分頁類擴展,感覺其實是沒有必要。
在現(xiàn)有的基礎(chǔ)上做了一下小小的改動還是能實現(xiàn)的。
下面進入正題:
CI的原生分頁類中有一個參數(shù) $config[anchor_class]
這個參數(shù)是用來設(shè)置分頁鏈接的樣式的,所以我們可以設(shè)置成這樣:
$config[anchor_class] = "class=ajax_fpage";
然后在view部分這樣采用禁止a便簽?zāi)J(rèn)動作的方法來取得AJAX的調(diào)取效果。
代碼如下:
<script>
$(.ajax_fpage).click(function(e){
var url = $(this).attr(href);
$.get(url,{},function(res){
$(#show_what_table).html(res);
});
event.preventDefault();
});
</script>
當(dāng)ajax_fpage點擊的時候,禁止a標(biāo)簽的默認(rèn)動作,并得到href信息,然后用get方法取得href的內(nèi)容,并更新dom.
這樣一個完整的ajax分頁就實現(xiàn)了。從而不需要對原始的類進行擴展了。
詳細的PHP代碼如下:
function ContentList($id,$p=0)
{
$this->load->library(pagination);
$config[base_url] = site_url(qyadmin/ContentList/.$id./.$p);
$config[total_rows] = $this->admin->content_list($id,$p,1);
$config[per_page] = 5;
$config[uri_segment] = 5;
$config[first_link] = FALSE;
$config[last_link] = FALSE;
$config[full_tag_open] = <p>;
$config[full_tag_close] = </p>;
$config[display_pages] = FALSE;
$this->load->helper(url);
$skin_url = base_url().APPPATH . "views/templates";
$config[next_link] = <img src=".$skin_url./images/page_next.gif">;
$config[next_tag_open] = <li class="fr">;
$config[next_tag_close] = </li>;
$config[prev_link] = <img src=".$skin_url./images/page_prev.gif">;
$config[prev_tag_open] = <li class="fr">;
$config[prev_tag_close] = </li>;
$config[anchor_class] = class="ajax_fpage";
$this->pagination->initialize($config);
$content = $this->admin->content_list($id,$p,0,$config[per_page],$this->uri->segment(5));
$fpage = $this->pagination->create_links();
$this->smarty->assign(fpage,$fpage);
$this->smarty->assign(content,$content);
$this->smarty->view(show.tpl);
}
在現(xiàn)有的基礎(chǔ)上做了一下小小的改動還是能實現(xiàn)的。
下面進入正題:
CI的原生分頁類中有一個參數(shù) $config[anchor_class]
這個參數(shù)是用來設(shè)置分頁鏈接的樣式的,所以我們可以設(shè)置成這樣:
$config[anchor_class] = "class=ajax_fpage";
然后在view部分這樣采用禁止a便簽?zāi)J(rèn)動作的方法來取得AJAX的調(diào)取效果。
代碼如下:
復(fù)制代碼 代碼如下:
<script>
$(.ajax_fpage).click(function(e){
var url = $(this).attr(href);
$.get(url,{},function(res){
$(#show_what_table).html(res);
});
event.preventDefault();
});
</script>
當(dāng)ajax_fpage點擊的時候,禁止a標(biāo)簽的默認(rèn)動作,并得到href信息,然后用get方法取得href的內(nèi)容,并更新dom.
這樣一個完整的ajax分頁就實現(xiàn)了。從而不需要對原始的類進行擴展了。
詳細的PHP代碼如下:
復(fù)制代碼 代碼如下:
function ContentList($id,$p=0)
{
$this->load->library(pagination);
$config[base_url] = site_url(qyadmin/ContentList/.$id./.$p);
$config[total_rows] = $this->admin->content_list($id,$p,1);
$config[per_page] = 5;
$config[uri_segment] = 5;
$config[first_link] = FALSE;
$config[last_link] = FALSE;
$config[full_tag_open] = <p>;
$config[full_tag_close] = </p>;
$config[display_pages] = FALSE;
$this->load->helper(url);
$skin_url = base_url().APPPATH . "views/templates";
$config[next_link] = <img src=".$skin_url./images/page_next.gif">;
$config[next_tag_open] = <li class="fr">;
$config[next_tag_close] = </li>;
$config[prev_link] = <img src=".$skin_url./images/page_prev.gif">;
$config[prev_tag_open] = <li class="fr">;
$config[prev_tag_close] = </li>;
$config[anchor_class] = class="ajax_fpage";
$this->pagination->initialize($config);
$content = $this->admin->content_list($id,$p,0,$config[per_page],$this->uri->segment(5));
$fpage = $this->pagination->create_links();
$this->smarty->assign(fpage,$fpage);
$this->smarty->assign(content,$content);
$this->smarty->view(show.tpl);
}
您可能感興趣的文章:
- 完美解決Could not load file or assembly AjaxPro.2 or one of its dependencies. 拒絕訪問。
- 如何讓CI框架支持service層
- php CI框架插入一條或多條sql記錄示例
- php ci框架中加載css和js文件失敗的原因及解決方法
- CI框架中zip類應(yīng)用示例
- CI框架中集成CKEditor編輯器的教程
- 教你如何在CI框架中使用 .htaccess 隱藏url中index.php
- CI框架開發(fā)新浪微博登錄接口源碼完整版
- php ci框架中加載css和js文件失敗的解決方法
- ci檢測是ajax還是頁面post提交數(shù)據(jù)的方法
相關(guān)文章
php結(jié)合mysql與mysqli擴展處理事務(wù)的方法
這篇文章主要介紹了php結(jié)合mysql與mysqli擴展處理事務(wù)的方法,結(jié)合實例形式分析了php使用mysql與mysqli處理事務(wù)的相關(guān)技巧與注意事項,需要的朋友可以參考下2016-06-06