显示列表

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">&#xe665;</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">&#xe665;</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...
    }