Skip to content

Latest commit

 

History

History
99 lines (74 loc) · 2.74 KB

BackendJs.md

File metadata and controls

99 lines (74 loc) · 2.74 KB

跳转js执行机制

可通过$this->success('修改成功', 'javascript:js代码') 的方式,让页面提交后执行对应的js代码。
该方法仅对使用ajax-post和ajax-form的页面有效。

使用场景举例:
当翻页后,对列表数据进行编辑操作,编辑成功后希望页面跳回之前的页码。

$this->success('修改成功', 'javascript:location.href=document.referrer;');

获取当前列表选中checkbox的值

var ids = $(".check-all").data('checkedIds');

select2_ajax

根据API重置select2组件的值

参数
select_dom:dom select2元素节点
url:string 获取数据的API,需返回数据格式:['total_count' => 12,'data' => [['id' => 1, 'text' => 'text']]]
query:json 筛选API的参数,search为dom的值,pageSize最小值为20,最少会包括的参数有:search=xxx&page=1&pageSize=20,数据格式:{pageSize: "{:C('ADMIN_PER_PAGE_NUM')}"}

代码示例

    // API
    public function getLibrary($city){
        $search = I('search');
        $page = I('page');
        $page == '' && $page = 1;
        $pageSize = I('pageSize');
        $pageSize == '' && $pageSize = 20;
        $map['status'] = DBCont::NORMAL_STATUS;
        $map['city'] = $city;
        
        if ($search){
            $map['name'] = ['like', "%{$search}%"];
        }

        $library_name = D('Library')->where($map)->field(['id, name'])->page($page, $pageSize)->select();
        $total_count = D('Library')->getListforCount($map);
        
        $lib_data = [];
        foreach ($library_name as $k => $v){
            $lib_data[$k]['id'] = $v['id'];
            $lib_data[$k]['text'] = $v['name'];
        }
        $data = [
            'total_count' => $total_count,
            'data' => $lib_data,
        ];

        $this->ajaxReturn($data);
    }
            
    // js使用代码    
    var city = $('input[name=city]').val();
    var query = {
        city:city,
        pageSize: "{:C('ADMIN_PER_PAGE_NUM')}"
    };
    
    select2_ajax($('.select-two'), "{:U('getLibrary')}", query);

setCheckedIds

将当前列表选中checkbox的值赋值到自定义dom的data-checkedIds中。

参数
$this:dom 当前列表checkbox元素节点
selectIds:array 当前列表选中checkbox的值
valDom:string 存放selectIds转换成字符串的元素节点,默认为:.check-all

ajax-form

  1. 重写提交成功后的信息展示效果

    在需要重写的页面执行以下代码, 回调里写客制化代码

    jQuery.data(document.querySelector('.ajax-form'), 'showMsg', function(info){
        //信息展示代码
        //todo something
    });
    
  2. 关闭提交成功后的reload页面效果

    给form元素设置属性 reload='false'