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生成静态页
Nov 25 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
Jul 12 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
PHP Cookie学习笔记
Aug 23 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 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
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
php排序算法实例分析
2016/10/17 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
一个JQuery操作Table的代码分享
2012/03/30 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
js post提交调用方法
2014/02/12 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
开始着手第一个Django项目
2015/07/15 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
高级Java程序员面试题
2016/06/23 面试题
战友聚会邀请函
2014/01/18 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
xxx同志考察材料
2014/02/07 职场文书
电子商务实训报告总结
2014/11/05 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
检讨书怎么写
2015/01/23 职场文书
幸福终点站观后感
2015/06/04 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
Java集成swagger文档组件
2021/06/28 Java/Android
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
CSS的calc函数用法小结
2022/06/25 HTML / CSS