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批量生成随机用户名
Jul 10 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
PHP反向代理类代码
Aug 15 PHP
php递归实现无限分类的方法
Jul 28 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
Yii多表联合查询操作详解
Jun 02 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
php实现数字补零的方法总结
Sep 12 PHP
php如何实现数据库的备份和恢复
Nov 30 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实现MySQL更新记录的代码
2008/06/07 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
学习php中的正则表达式
2014/08/17 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
python实现感知器
2017/12/19 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
解析python的局部变量和全局变量
2019/08/15 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
快速查找Python安装路径方法
2020/02/06 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
小学门卫岗位职责
2013/12/17 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
军训决心书范文
2015/09/22 职场文书
校运会班级霸气口号
2015/12/24 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python