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 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
PHP中MD5函数使用实例代码
Jun 07 PHP
php分页思路以及在ZF中的使用
May 30 PHP
基于PHP array数组的教程详解
Jun 05 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
Laravel使用RabbitMQ的方法示例
Jun 18 PHP
php array_chunk()函数用法与注意事项
Jul 12 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和.net的区别
2014/09/28 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python list语法学习(带例子)
2013/11/01 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python常用算法学习基础教程
2017/04/13 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
python pygame实现球球大作战
2019/11/25 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
python初步实现word2vec操作
2020/06/09 Python
序列化Python对象的方法
2020/08/01 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
Internet体系结构
2014/12/21 面试题
高中自我评价分享
2013/12/05 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
物业总经理岗位职责
2014/02/28 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
新娘婚礼致辞
2015/07/27 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技