zoukankan      html  css  js  c++  java
  • 批量更改会员权限

    我们通常都会遇到这样的一个需求,那就是批量操作!像这样:

    前端页面代码(一个tr的代码)及解析:

    <tr>
        <td><input name="ids" type="checkbox" class="dr_select" value="{$t.uid}" /></td>
        <td>{$t.uid}</td>
        <td>{$t.name}</td>
        <td>{if $t[groupid]==1}
                    待审核
            {else if $t[groupid]==3}
                    独立经纪人
            {else if $t[groupid]==4}
                    职业经纪人
            {else}
                    其他
            {/if}
        </td>
    </tr>

    这里会员组名称是根据会员组id来判别的,用的是php脚本(poscms的写法),记录是用foreach循环输出的,

    最后一行全选的前端代码如下:

        <tr>
            <th><input id="dr_select" type="checkbox" onClick="dr_selected()" />
            </th>
            <td colspan="10"  >
                <label>
                    <button onClick="changeGroup()">修改为</button>
                </label>
                <label>
                    <select id="groupid">
                        <option value="1" selected> 待审核 </option>
                        <option value="4" > 职业经纪人 </option>
                        <option value="3" > 独立经纪人 </option>
                    </select>
                </label>
            </td>
        </tr>

    全选函数dr_selected():

    function dr_selected() {
        if ($("#dr_select").prop("checked")) {
            $(".dr_select").prop("checked", true);
        } else {
            $(".dr_select").prop("checked", false);
        }
    }

    “修改为”按钮单击事件changeGroup():

    function changeGroup() {
        //获取记录条目中的所有复选框DOM
        var obj = $("input:checkbox[name='ids']");
        //获取单选框的值
        var groupid = $("#groupid").val();
        //定义一个数组ids来装所有选中条目的id值
        var ids = [];
        for(k in obj){
            if(obj[k].checked)
                ids.push(obj[k].value);
        }
        //向后台发起ajax请求,传递ids和将要转变的会员组id值
        $.ajax({
            type: "GET",
            url: siteurl,
            dataType: "json",
            data:{
                "c":"api",
                "m":"changegroup",
                "ids":ids,
                "groupid":groupid
                },
            success: function(text) {
                var _iframe = window.parent;
                var _div =_iframe.document.getElementById('rightMain');
                _div.contentWindow.location.reload(true);
            },
            error: function(text) {
                var _iframe = window.parent;
                var _div =_iframe.document.getElementById('rightMain');
                _div.contentWindow.location.reload(true);
            }
        });
    }

    由于不知道接口会不会出现“返回数据类型不是json的”错误,success回调和error回调都将刷新当前iframe页面,对于200OK

    状态ajax执行回调的不确定性,之前已经作过详解,不明白的可以参考博主的这篇博客:https://www.cnblogs.com/eco-just/p/9094940.html

    其实这里应该将iframe刷新的代码封装成一个函数,避免大家看得混乱,这里就不作封装了,但是实际写的时候要注意封装。

    接下来看接口是怎么处理的(admin.php?c=api&m=changegroup):

    public function changegroup() {
            $ids = $this->input->get('ids');
            $groupid = $this->input->get('groupid');
            foreach ($ids as $id) {  
                  $data = array('groupid'=>$groupid,);
                  $this->db->where('uid', $id);
                  $this->db->update('mt_member', $data);
            }
        }

    这里也不难理解,获取前台传来的ids数组和将转换的groupid,然后遍历这个ids数组,对每个id对应的数据库记录,

    进行groupid字段的更改。

    至此,批量操作的流程就已经完成了!

  • 相关阅读:
    使用Jenkins自动编译 .net 项目
    Windows平台下Git服务器搭建
    在MAC上搭建cordova3.4.0的IOS和android开发环境
    检索 COM 类工厂中 CLSID 为 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
    IIS7 404 模块 IIS Web Core 通知 MapRequestHandler 处理程序 StaticFile 错误代码 0x80070002
    mac 端口被占用及kill端口
    查询数据库表大小sql
    开启关闭keditor 过滤
    sql修改字段名称
    Android客户端性能优化
  • 原文地址:https://www.cnblogs.com/eco-just/p/9102923.html
Copyright © 2011-2022 走看看