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基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 PHP
本地计算机无法启动Apache故障处理
Aug 08 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 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的memcache类分享(memcache队列)
2014/03/26 PHP
php单例模式示例分享
2015/02/12 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
angularjs指令之绑定策略(@、=、&amp;)
2017/04/13 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
火车票抢票python代码公开揭秘!
2018/03/08 Python
Python实现登陆文件验证方法
2018/10/06 Python
python3获取url文件大小示例代码
2019/09/18 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
物流管理专业大学生自荐信
2013/10/04 职场文书
大三在校生电子商务求职信
2013/10/29 职场文书
教师实习自我鉴定
2013/12/18 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
2014年电厂工作总结
2014/12/04 职场文书
个人收入证明范本
2015/06/12 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android