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 相关文章推荐
杏林同学录(一)
Oct 09 PHP
php+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
PHP 七大优势分析
Jun 23 PHP
解析php中heredoc的使用方法
Jun 17 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 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实现WEB动态网页静态
2006/10/09 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php之readdir函数用法实例
2014/11/13 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
Python urlopen 使用小示例
2008/09/06 Python
python中global与nonlocal比较
2014/11/21 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
python os.rename实例用法详解
2020/12/06 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
SQL 聚合、分组和排序
2021/11/11 MySQL