一、全選功能實作
1.在檢視檔中,我們需要新增一個全選的按鈕,類似下面這樣的程式碼:
<input type="checkbox" name="chkall" onclick="check_all(this)">
#其中,check_all()
函數的作用是全選或取消全選:
function check_all(obj){ $(':checkbox').prop('checked', $(obj).prop('checked')); }
在這裡,用到了jQuery的選擇器選擇所有的checkbox並使用prop()方法設定其checked屬性。
2.以ThinkPHP為例,我們假設已經獲取到了需要進行全選的數據,並將其傳遞到視圖頁面中,此時我們需要使用for循環遍歷每個數據,並為其添加checkbox和ID,程式碼如下:
<?php foreach($list as $data):?> <tr> <td><input type="checkbox" name="ckb[]" value="<?php echo $data['id'];?>" ></td> <td><?php echo $data['title'];?></td> </tr> <?php endforeach;?>
在這裡,為了方便操作,使用了數組傳遞checkbox的值,checkbox的名稱為ckb[]
,其對應的value為該行數據的ID值。
3.此時我們只需要在提交表單的時候獲取到所有選取的checkbox並將其對應的值組合成一個新的數組,就可以實現全選的功能了。具體實作程式碼如下:
public function all(){ $ids = input('post.ckb/a'); if(empty($ids)){ return $this->error('请选择要删除的数据!'); } $ids = implode(',',$ids); $where['id'] = array('in',$ids); $result = db('table')->where($where)->delete(); if($result){ return $this->success('删除成功!'); }else{ return $this->error('删除失败!'); } }
在這裡,input('post.ckb/a')
用於取得提交表單時傳遞的所有checkbox的值,使用implode( )
方法將其連接成字串,並將其用於查詢資料庫中的資料。
二、批次刪除功能實作
實作批次刪除功能需要結合前面的全選功能,具體步驟如下:
1.首先,使用者需要選取需要刪除的數據,然後點擊刪除按鈕(或其他自訂按鈕),這時需要取得選取的資料並對其進行刪除操作。
2.為了方便操作,我們可以將所有選取的資料ID值合併成一個字串(以英文逗號分隔),然後將其傳遞到下一個處理函數中。
3.使用where()函數將刪除條件設為id in (ids)
(其中,ids為所有要刪除資料的ID),然後使用delete()函數刪除滿足條件的數據即可。
具體實作程式碼如下:
public function delete(){ $ids = input('post.ids/s',''); if(empty($ids)){ return $this->error('请选择要删除的数据!'); } $where['id'] = array('in',$ids); $result = db('table')->where($where)->delete(); if($result){ return $this->success('删除成功!'); }else{ return $this->error('删除失败!'); } }
以上是thinkphp如何實現全選和刪除功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器