显示列表
1.控制器
/**
* 评论列表
* @return [view] [评论列表页面]
*/
public function commentList()
{
$this->load->view('jt_admin/comment/commentList', null);
}
/**
* 返回评论列表ajax数据
* @return [json] [评论列表数据]
*/
public function listData()
{
$this->load->library('AdminList'); //使用方法参照05_库文档
$list = new AdminList();
$list->setWhere('del_flag', 0);
$list->setFilter('col1');
$list->setFilter('col2');
$list->setOrder('order_col');
$list->setModel('model_name');
$data = $list->getListData();
echo json_encode($data);
exit;
}
2.视图
列表页视图
单项数据更新
1.视图
1) 在`th`里设置提交 `url`
<!-- ... 中略 ... -->
<div class="mt-20">
<table id="data_list" width="100%" class="table table-border table-bordered table-striped table-bg table-hover table-sort">
<thead>
<tr class="text-c">
<!-- ... 其他标题 ... -->
<th width="70" url="<?=adm_url('controller/updateView')?>">显示状态</th>
<!-- ... 其他标题 ... -->
<th width="70">操作</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<!-- ... 中略 ... -->
2) 配置javascript
<script>
<!-- ...列表设置... -->
var columns = [
<!-- ... 其他列表项... -->
,{ name:'viewFlag',
data: "viewFlag",
className:'text-c normal',
render:function(data,type,row){
return render_flag(data);
}
,searchable: false
}
<!-- ... 其他列表项... -->
];
<!-- ...//列表设置... -->
<!-- ... 其他代码... -->
ajax_update_col('.normal .change_state'); <!--激活功能-->
<script>
2. 控制器
public function updateView()
{
$this->load->library('AdminCrud');
$u = new AdminCrud();
$where['gID'] = form('id');
$data['viewFlag'] = form('val');
$u->updateCol('product', $data, $where);
}
列表查询功能
1. 设置标签id, 添加格式 filter_[Col_id]
col_id必须是 DataTable设置的columns['name']元素之一。
<!--view.php-->
<form method="get" class="form form-horizontal" id="form_search_list" >
<div class="text-c">
<input type="text" id="filter_cmID" placeholder=" 评论ID" style="width:150px" class="input-text">
<input type="text" id="filter_cmContent" placeholder=" 评论内容" style="width:150px" class="input-text">
<button id="btn_search" class="btn radius btn-success" ><i class="Hui-iconfont"></i> 查询</button>
<a id="btn_reset" class="btn radius"> 重置</a>
</div>
</form>
2. 设置javascript,配置ID后绑定,搞定
<!--view.php-->
<script>
<!-- ... 其他代码... -->
filters = ['cmID','gName']; <!--//搜索内容 Input ID 去除filter_-->
set_fiter(table,columns,filters); <!--//绑定搜索功能-->
<script>
3. 接收查询数据
//controller.php
/**
* 返回列表ajax数据
* @return [json] [列表数据]
*/
public function listData()
{
$this->load->library('AdminList'); //使用方法参照05_库文档
$list = new AdminList();
$list->setWhere('cmDel', 0);
$list->setFilter('cmID');
$list->setFilter('gName', 'gName %%');
$list->setOrder('cmID desc');
$list->setModel('comment');
$data = $list->getListData();
echo json_encode($data);
exit;
}
简化开发成本
1. 先定义查询项目 `$filters`
//controller.php
class Article extends ADMIN_Controller
{
public $filters = array();
public function __construct()
{
parent::__construct();
$this->filters = json_decode('{
"aID" : {"name" : "文章ID"}
,"aTitle" : {"name" : "标题"}
,"aContent" : {
"name" : "文章内容"
,"db" : "aContent %%"}
,"mNickName" : {"name" : "作者"}
}', true);
}
// <!--其他-->
/**
* 列表
* @return [view] [列表页面]
*/
public function articleList()
{
// dump(json_encode(array_keys($this->filters)));
$data['filters'] = $this->filters;
$this->load->view('jt_admin/article/articleList', $data);
}
// <!--其他-->
2. 视图里调用`$filters`自动生成HTML部分和JS部分
<!--view.php-->
<?php
$this->load->helper('render');
?>
<form method="get" class="form form-horizontal" id="form_search_list" >
<div class="text-c">
<?=render_list_filter($filters)?>
<!-- 用render_list_filter()方法自动生成这部分
<input type="text" id="filter_cmID" placeholder=" 评论ID" style="width:150px" class="input-text">
<input type="text" id="filter_cmContent" placeholder=" 评论内容" style="width:150px" class="input-text">
-->
<button id="btn_search" class="btn radius btn-success" ><i class="Hui-iconfont"></i> 查询</button>
<a id="btn_reset" class="btn radius"> 重置</a>
</div>
</form>
<!-- ... 其他代码... -->
<script>
<!-- ... 其他代码... -->
<!--
使用$filters自动生成
filters = ['cmID','gName'];
-->
filters = <?=json_encode(array_keys($filters))?>;
<!-- ... 其他代码... -->
<script>
3. 接收查询数据, 使用`setFiters()`方法简化
//controller.php
public function listData()
{
// ...more...
$list->setFilters($this->filters);
//使用setFilters简化开发过程
//$list->setFilter('cmID');
//$list->setFilter('gName', 'gName %%');
// ...more...
}