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 相关文章推荐
基于文本的留言簿
Oct 09 PHP
杏林同学录(四)
Oct 09 PHP
PHP异常处理浅析
May 12 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 PHP
基于PHP实现生成随机水印图片
Dec 09 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中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
扩展String功能方法
2006/09/22 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
django基础之数据库操作方法(详解)
2017/05/24 Python
python实现动态创建类的方法分析
2019/06/25 Python
python实现广度优先搜索过程解析
2019/10/19 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
航空大学应届生求职信
2013/11/10 职场文书
物理教师自荐信范文
2013/12/28 职场文书
心理健康教育心得体会
2013/12/29 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
2015年科协工作总结
2015/05/19 职场文书