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 相关文章推荐
PHP 表单提交给自己
Jul 24 PHP
PHP源代码数组统计count分析
Aug 02 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
Linux中为php配置伪静态
Dec 17 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
Apr 20 PHP
php如何执行非缓冲查询API
Jul 22 PHP
wordpress网站转移到本地运行测试的方法
Mar 15 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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实现ip白名单黑名单功能
2015/03/12 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
js活用事件触发对象动作
2008/08/10 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Python装饰器decorator用法实例
2014/11/10 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Python 私有化操作实例分析
2019/11/21 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
Python Django搭建网站流程图解
2020/06/13 Python
python爬虫请求头设置代码
2020/07/28 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
公司年会晚宴演讲稿
2014/01/06 职场文书
函授生自我鉴定
2014/03/25 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python