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
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
常见的PHP五种设计模式小结
Mar 23 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
php获取301跳转URL简单实例
Dec 16 PHP
PHP函数strip_tags的一个bug浅析
May 22 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
Zend Framework教程之Application和Bootstrap用法详解
Mar 10 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 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的历史和优缺点
2006/10/09 PHP
php获得文件扩展名三法
2006/11/25 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
vue的mixins属性详解
2018/03/14 Javascript
nodejs aes 加解密实例
2018/10/10 NodeJs
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Python面向对象类的继承实例详解
2018/06/27 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Django框架模板的使用方法示例
2019/05/25 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
详解python中__name__的意义以及作用
2019/08/07 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
新奇的小玩意:IWOOT
2016/07/21 全球购物
在校硕士自我鉴定
2014/01/23 职场文书
婚前协议书
2014/04/15 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
订货会邀请函
2015/01/31 职场文书
党员个人年度总结
2015/02/14 职场文书
初中同学会致辞
2015/08/01 职场文书
教师节随笔
2015/08/15 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL