《PHP編程:ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)》要點(diǎn):
本文介紹了PHP編程:ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:thinkphp教程
前段時(shí)間發(fā)表了一個(gè)刪除欄目的隨筆,當(dāng)時(shí)實(shí)現(xiàn)的功能是刪除一條信息,這次來實(shí)現(xiàn)一下批量刪除欄目.PHP學(xué)習(xí)
我們需要達(dá)到的是這樣一個(gè)效果:PHP學(xué)習(xí)
PHP學(xué)習(xí)
選中批量刪除按鈕后可以選中所有該頁(yè)面的欄目,這個(gè)是前端頁(yè)面的實(shí)現(xiàn),在這里就不多說了,我們直接進(jìn)入正題:批量刪除的功能.PHP學(xué)習(xí)
1.前端頁(yè)面這里也有一個(gè)小小的點(diǎn),就是選擇框的name值應(yīng)給給他賦值為一個(gè)id的數(shù)組,value值為該欄目的id.PHP學(xué)習(xí)
2.我們?cè)诳刂破髦袉为?dú)寫一個(gè)批量刪除的方法PHP學(xué)習(xí)
public function privilege_bdel(){ $ids = I('ids'); $pri = D('privilege'); $ids = implode(',', $ids); if($ids){ if($pri->delete($ids)){ $this->success('批量刪除欄目成功!',U('Privilege/privilege_lst')); }else{ $this->error('批量刪除欄目失敗,請(qǐng)重試!'); } }else{ $this->error('未選中任何內(nèi)容,請(qǐng)重試!'); } }
這里要將傳過來的id數(shù)組轉(zhuǎn)化為以逗號(hào)分隔的字符串如:1,2,3,這樣可以直接進(jìn)行delete操作.PHP學(xué)習(xí)
PHP學(xué)習(xí)
這就是我們dump出來options的結(jié)果,這條也是我們用來判斷刪除時(shí)是單個(gè)刪除還是批量刪除的依據(jù),如果options[where][id]是一個(gè)數(shù)組的話,則說明進(jìn)行的是批量刪除,否則就是單個(gè)刪除.PHP學(xué)習(xí)
3.在模型中對(duì)刪除前構(gòu)造函數(shù)的修改PHP學(xué)習(xí)
public function _before_delete($options){ //批量刪除 if(is_array($options['where']['id'])){ $arr = explode(',', $options['where']['id'][1]); $sonpri = array(); foreach ($arr as $k => $v) { $sonpri2 = $this->childid($v); $sonpri = array_merge($sonpri,$sonpri2); } $sonpri = array_unique($sonpri); $chilrenids = implode(',', $sonpri); }else{//單個(gè)刪除 $chilrenids =$this->childid($options['where']['id']); $chilrenids = implode(',', $chilrenids); } if($chilrenids){ $this->execute("delete from ed_privilege where id in($chilrenids)"); } }
在這里我們寫出批量刪除的代碼(單個(gè)刪除之前已經(jīng)寫過,不再提)PHP學(xué)習(xí)
將傳過來的字符串轉(zhuǎn)化為不帶逗號(hào)的數(shù)組形式存在$arr中,建立一個(gè)空數(shù)組$sonpri,然后foreach遍歷,這里先查找出所有的子欄目id(會(huì)用childid函數(shù)),存入$sonpri2數(shù)組中 ,再將$sonpri和$sonpri2合并為一個(gè)數(shù)組,使用array_merge()函數(shù)完成,這樣我們才算是獲取到了所有子欄目的id,但是我們所獲取的id組中,會(huì)出現(xiàn)許多重復(fù)的id,所以這里我們還要進(jìn)行去重的操作,使用array_unique()函數(shù).最后再進(jìn)行一次數(shù)組的拆分,得到id字符串,再進(jìn)行刪除就大功告成了.PHP學(xué)習(xí)
以上這篇ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持維易PHP.PHP學(xué)習(xí)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/588.html