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
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
php计算税后工资的方法
Jul 28 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 PHP
如何运行/调试你的PHP代码
Oct 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自动判断字符集并转码的详解
2013/06/26 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
Javascript开发包大全整理
2006/12/22 Javascript
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
python随机数分布random测试
2018/08/27 Python
python实现排序算法解析
2018/09/08 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Django  ORM 练习题及答案
2019/07/19 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
好家长事迹材料
2014/01/23 职场文书
会计工作总结范文2014
2014/12/23 职场文书
针对吵架老公保证书
2015/05/08 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
请假条应该怎么写?
2019/06/24 职场文书
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android