php下拉选项的批量操作的实现代码


Posted in PHP onOctober 14, 2013

php下拉选项的批量操作的实现代码

实现功能,操作项可以单独删除,批量项可以批量删除,批量显示,隐藏(改广告的数据库的status_is的值);

1.视图关键点:

<td ><input type="checkbox" name="id[]" value="<?php echo $row->id?>"> 
        <?php echo $row->id?></td>
<div class="fixsel"> 
          <input type="checkbox" name="chkall" id="chkall" onclick="checkAll(this.form, 'id')" /> 
          <label for="chkall">全选</label> 
          <select name="command"> 
            <option>选择操作</option> 
            <option value="adDelete">删除</option> 
            <option value="adVerify">显示</option> 
            <option value="adUnVerify">隐藏</option> 
          </select> 
          <input id="submit_maskall" class="button confirmSubmit" type="submit" value="提交" name="maskall" /> 
        </div>
/*单个删除*/<a href="<?php echo  $this->createUrl('batch',array('command'=>'adDelete', 'id'=>$row->id))?>" class="confirmSubmit">

2.控制器:

/** 
     * 批量操作 
     * 
     */
    public function actionBatch () 
    { 
        if (XUtils::method() == 'GET') {     //单个删除是get方式 
            $command = trim($_GET['command']); 
            $ids = intval($_GET['id']); 
        } else 
            if (XUtils::method() == 'POST') { 
                $command = trim($_POST['command']); 
                $ids = $_POST['id']; 
                is_array($ids) && $ids = implode(',', $ids); 
            } else { 
                XUtils::message('errorBack', '只支持POST,GET数据'); 
            } 
        empty($ids) && XUtils::message('error', '未选择记录');         switch ($command) { 
            case 'adDelete': 
                parent::_acl('ad_delete'); 
                parent::_adminiLogger(array('catalog'=>'delete', 'intro'=>'删除广告,ID:'.$ids)); 
                parent::_delete(new Ad(), $ids, array ('ad' ), array ('attach_file' )); 
                break; 
            case 'adVerify': 
                parent::_acl('ad_verify'); 
                parent::_adminiLogger(array('catalog'=>'delete', 'intro'=>'广告状态变更为显示,ID:'.$ids)); 
                parent::_verify(new Ad(), 'verify', $ids, array ('ad' )); 
                break; 
            case 'adUnVerify': 
                parent::_acl('ad_verify'); 
                parent::_adminiLogger(array('catalog'=>'delete', 'intro'=>'广告状态变更为隐藏,ID:'.$ids)); 
                parent::_verify(new Ad(), 'unVerify', $ids, array ('ad' )); 
                break; 
            default: 
                throw new CHttpException(404, '错误的操作类型:' . $command); 
                break; 
        } 
    }

父类的删除函数:

protected function _delete ($model = null, $id = '', $redirect = 'index', $attach = null, $pkField = 'id') 
    { 
        if ($attach) {          //如果有附件要删除广告的图片 
            $data = $model->findAll($pkField . ' IN(:id)', array (':id' => $id )); 
            foreach ((array) $data as $row) { 
                foreach ((array) $attach as $value) { 
                    if (! empty($row[$value])) { 
                        @unlink($row[$value]); 
                    } 
                } 
            } 
        } 
        $result = $model->deleteAll(array ('condition' => 'id IN(' . $id . ')' )); 
        //刷新缓存 
        self::_refreshCache($model); 
        $this->redirect($redirect); 
    }
protected function _verify ($model = null, $type = 'verify', $id = '', $redirect = 'index', $cdField = 'status_is', $pkField = 'id') 
    { 
        $criteria = new CDbCriteria(); 
        $criteria->condition = $pkField . ' IN(' . $id . ')'; 
        $showStatus = $type == 'verify' ? 'Y' : 'N'; 
        $result = $model->updateAll(array ($cdField => $showStatus ), $criteria); 
        //刷新缓存 
        self::_refreshCache($model); 
        $this->redirect($redirect); 
    }
PHP 相关文章推荐
pw的一个放后门的方法分析
Oct 08 PHP
PHP 批量删除 sql语句
Jun 05 PHP
PHP Stream_*系列函数
Aug 01 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
Dec 17 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 PHP
PHP7新增运算符用法实例分析
Sep 26 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
php登陆页的密码处理方式分享
Oct 14 #PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 #PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
Oct 10 #PHP
php检测网页是否被百度收录的函数代码
Oct 09 #PHP
php MessagePack介绍
Oct 06 #PHP
php 批量替换程序的具体实现代码
Oct 04 #PHP
php5.5中类级别的常量使用介绍
Oct 02 #PHP
You might like
PHP实现动态执行代码的方法
2016/03/25 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Cython 三分钟入门教程
2009/09/17 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
django 信号调度机制详解
2019/07/19 Python
wxpython绘制圆角窗体
2019/11/18 Python
Python tkinter模版代码实例
2020/02/05 Python
Python 解析xml文件的示例
2020/09/29 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
人事文员岗位职责
2014/02/16 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
政审证明范文
2015/06/19 职场文书
教师远程研修感悟
2015/11/18 职场文书
员工升职自我评价
2019/03/26 职场文书