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脚本数据库功能详解(下)
Oct 09 PHP
用PHP和ACCESS写聊天室(十)
Oct 09 PHP
global.php
Dec 09 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
php防止用户重复提交表单
Nov 02 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
ecshop添加菜单及权限分配问题
Nov 21 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
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
python中正则的使用指南
2016/12/04 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
python 实现按对象传值
2019/12/26 Python
python实现PCA降维的示例详解
2020/02/24 Python
印尼购物网站:iLOTTE
2019/10/16 全球购物
大学生期末自我鉴定
2014/02/01 职场文书
高三学习决心书
2014/03/11 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
营销总监岗位职责
2014/09/16 职场文书
优秀班组申报材料
2014/12/25 职场文书
实施意见格式范本
2015/06/05 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server