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游戏编程25个脚本代码
Feb 08 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
PHP导入导出Excel代码
Jul 07 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
php和C#的yield迭代器实现方法对比分析
Jul 17 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
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
常用的javascript设计模式
2017/01/11 Javascript
js实现二级导航功能
2017/03/03 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
python使用nntp读取新闻组内容的方法
2015/05/08 Python
python中os模块详解
2016/10/14 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
五种Python转义表示法
2020/11/27 Python
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
学校办公室主任职责
2013/12/27 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
优秀班组事迹材料
2014/12/24 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
python APScheduler执行定时任务介绍
2022/04/19 Python