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序列号生成函数和字符串替换函数代码
Jun 07 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
php一次性删除前台checkbox多选内容的方法
Sep 22 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
PHP读取Excel类文件
May 15 PHP
PHP堆栈调试操作简单示例
Jun 15 PHP
PHP数组array类常见操作示例
May 15 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/10/18 PHP
PHP遍历并打印指定目录下所有文件实例
2014/02/10 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP实现事件机制的方法
2015/07/10 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
详解Python中DOM方法的动态性
2015/04/11 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
python判断是空的实例分享
2020/07/06 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
2014道德模范事迹材料
2014/02/16 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
迎新生欢迎词
2015/01/23 职场文书
测量员岗位职责
2015/02/14 职场文书
工作表现证明
2015/06/15 职场文书
致运动员加油稿
2015/07/21 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android