ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)
前段時(shí)間發(fā)表了一個(gè)刪除欄目的隨筆,當(dāng)時(shí)實(shí)現(xiàn)的功能是刪除一條信息,這次來(lái)實(shí)現(xiàn)一下批量刪除欄目。
我們需要達(dá)到的是這樣一個(gè)效果:

選中批量刪除按鈕后可以選中所有該頁(yè)面的欄目,這個(gè)是前端頁(yè)面的實(shí)現(xiàn),在這里就不多說(shuō)了,我們直接進(jìn)入正題:批量刪除的功能。
1.前端頁(yè)面這里也有一個(gè)小小的點(diǎn),就是選擇框的name值應(yīng)給給他賦值為一個(gè)id的數(shù)組,value值為該欄目的id。
2.我們?cè)诳刂破髦袉为?dú)寫(xiě)一個(gè)批量刪除的方法
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)重試!');
}
}
這里要將傳過(guò)來(lái)的id數(shù)組轉(zhuǎn)化為以逗號(hào)分隔的字符串如:1,2,3,這樣可以直接進(jìn)行delete操作。

這就是我們dump出來(lái)options的結(jié)果,這條也是我們用來(lái)判斷刪除時(shí)是單個(gè)刪除還是批量刪除的依據(jù),如果options[where][id]是一個(gè)數(shù)組的話,則說(shuō)明進(jìn)行的是批量刪除,否則就是單個(gè)刪除。
3.在模型中對(duì)刪除前構(gòu)造函數(shù)的修改
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)");
}
}
在這里我們寫(xiě)出批量刪除的代碼(單個(gè)刪除之前已經(jīng)寫(xiě)過(guò),不再提)
將傳過(guò)來(lái)的字符串轉(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)行刪除就大功告成了。
以上這篇ThinkPHP刪除欄目(實(shí)現(xiàn)批量刪除欄目)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Thinkphp5.0框架使用模型Model的獲取器、修改器、軟刪除數(shù)據(jù)操作示例
- Thinkphp5.0 框架使用模型Model添加、更新、刪除數(shù)據(jù)操作詳解
- tp5(thinkPHP5框架)使用DB實(shí)現(xiàn)批量刪除功能示例
- thinkPHP利用ajax異步上傳圖片并顯示、刪除的示例
- ThinkPHP框架實(shí)現(xiàn)用戶信息查詢更新及刪除功能示例
- 基于php(Thinkphp)+jquery 實(shí)現(xiàn)ajax多選反選不選刪除數(shù)據(jù)功能
- thinkphp框架實(shí)現(xiàn)刪除和批量刪除
- thinkPHP刪除前彈出確認(rèn)框的簡(jiǎn)單實(shí)現(xiàn)方法
- 基于ThinkPHP刪除目錄及目錄文件函數(shù)
相關(guān)文章
phpstudy?mysql啟動(dòng)后停止的解決方案
今天mysql突然無(wú)法啟動(dòng)了,所以解決下,這篇文章主要給大家介紹了關(guān)于phpstudy?mysql啟動(dòng)后停止的解決方案,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-08-08
PHP遞歸遍歷指定目錄的文件并統(tǒng)計(jì)文件數(shù)量的方法
這篇文章主要介紹了PHP遞歸遍歷指定目錄的文件并統(tǒng)計(jì)文件數(shù)量的方法,涉及php文件及目錄操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
php iconv() : Detected an illegal character in input string
PHP傳給JS字符串用ecsape轉(zhuǎn)換加到url里,又用PHP接收,再用網(wǎng)上找的unscape函數(shù)轉(zhuǎn)換一下,這樣得到的字符串是UTF-8的,但我需要的是GB2312,于是用iconv轉(zhuǎn)換2010-12-12
php實(shí)現(xiàn)隨機(jī)顯示圖片方法匯總
本文分享一個(gè)php實(shí)現(xiàn)的隨機(jī)顯示圖片的函數(shù),可以將指定文件夾中存放的圖片隨機(jī)地顯示出來(lái)。有興趣的朋友研究下吧。2015-05-05

