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处理json时中文问题的解决方法
Apr 12 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
jquery不支持toggle()高(新)版本的问题解决
Sep 24 PHP
php发送http请求的常用方法分析
Nov 08 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
php与阿里云短信接口接入操作案例分析
May 27 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导出Word文档的原理和实例
2013/10/21 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
详解Python中DOM方法的动态性
2015/04/11 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
Python 中Operator模块的使用
2021/01/30 Python
python FTP编程基础入门
2021/02/27 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
《和我们一样享受春天》教学反思
2014/02/07 职场文书
爱国主义演讲稿
2014/05/07 职场文书
参赛口号
2014/06/16 职场文书
个人投资合作协议书
2014/10/12 职场文书
争先创优个人总结
2015/03/04 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL