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 中的4种标记风格介绍
May 10 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
php调用C代码的实现方法
Mar 11 PHP
Laravel框架学习笔记(一)环境搭建
Oct 15 PHP
php开发微信支付获取用户地址
Oct 04 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
PHP未登录自动跳转到登录页面
Dec 21 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
PHP实现websocket通信的方法示例
Aug 28 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
apache集成php7.3.5的详细步骤
2019/06/20 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
javascript this用法小结
2008/12/19 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Django在win10下的安装并创建工程
2017/11/20 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
对python模块中多个类的用法详解
2019/01/10 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
AC Lens:购买隐形眼镜
2017/02/26 全球购物
商得四方公司面试题(gid+)
2014/04/30 面试题
初三家长会邀请函
2014/01/18 职场文书
小学家长会邀请函
2014/01/23 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
软件售后服务承诺书
2014/05/21 职场文书
推荐信范文大全
2015/03/27 职场文书
交通事故被告答辩状
2015/05/22 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
mysql事务隔离级别详情
2021/10/24 MySQL
Redis唯一ID生成器的实现
2022/07/07 Redis