homepagePHP/docs/BackendJs.md

99 lines
2.7 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### 跳转js执行机制
```php
可通过$this->success('修改成功', 'javascript:js代码') 的方式让页面提交后执行对应的js代码。
该方法仅对使用ajax-post和ajax-form的页面有效。
使用场景举例:
当翻页后,对列表数据进行编辑操作,编辑成功后希望页面跳回之前的页码。
$this->success('修改成功', 'javascript:location.href=document.referrer;');
```
#### 获取当前列表选中checkbox的值
```blade
var ids = $(".check-all").data('checkedIds');
```
#### select2_ajax
```blade
根据API重置select2组件的值
参数
select_domdom select2元素节点
urlstring 获取数据的API需返回数据格式['total_count' => 12,'data' => [['id' => 1, 'text' => 'text']]]
queryjson 筛选API的参数search为dom的值pageSize最小值为20最少会包括的参数有search=xxx&page=1&pageSize=20,数据格式:{pageSize: "{:C('ADMIN_PER_PAGE_NUM')}"}
```
代码示例
```php
// 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
```blade
将当前列表选中checkbox的值赋值到自定义dom的data-checkedIds中。
参数
$thisdom 当前列表checkbox元素节点
selectIdsarray 当前列表选中checkbox的值
valDomstring 存放selectIds转换成字符串的元素节点默认为:.check-all
```
#### ajax-form
1. 重写提交成功后的信息展示效果
在需要重写的页面执行以下代码, 回调里写客制化代码
```
jQuery.data(document.querySelector('.ajax-form'), 'showMsg', function(info){
//信息展示代码
//todo something
});
```
2. 关闭提交成功后的reload页面效果
给form元素设置属性 reload='false'