美文网首页
基于DataTables的数据操作demo

基于DataTables的数据操作demo

作者: answer6 | 来源:发表于2018-01-18 15:32 被阅读0次

后台管理数据的话,常常会用到编辑和删除改行数据。这里基于datatables,做一组demo。

  1. Table Demo
<table id="table_comments_log" class="table table-striped table-bordered table-hover table-condensed" style="width:100%;">
                    <thead>
                        <tr>
                            <th style="text-align: center;">ID</th>
                            <th style="text-align: center;">员工编号</th>
                            <th style="text-align: center;">微信昵称</th>
                            <th style="text-align: center;">员工姓名</th>
                            <th style="text-align: center;">所在门店编号</th>
                            <th style="text-align: center;">所在门店名称</th>
                            <th style="text-align: center;">客户微信头像/昵称</th>
                            <th style="text-align: center;">评价内容</th>
                            <th style="text-align: center;">评价星级</th>
                            <th style="text-align: center;">状态</th>
                            <!-- <th style="text-align: center;">创建时间</th> -->
                            <th style="text-align: center;">更新时间</th>
                            <th style="text-align: center;">备注</th>
                            <th style="text-align: center;">操作</th>
                        </tr>
                    </thead>
                    <tbody>
                    </tbody>
                    <tfoot>
                    </tfoot>
                    <!-- <tr class="kaensoft_tr">
                    </tr> -->
                </table>

  1. 数据的渲染方法 ( 包括编辑和删除按钮的集成 )
 // 初始化表格
                var tables_comments = jQuery('#table_comments_log').DataTable({
                    // dom:"lrtip",           // 隐藏掉自己的搜索框
                    order: [[ 10, "desc" ]],
                    serverSide:true,
                    processing:true,   // 打开信息提醒
                    language: {
                        url: 'http://static.wxkydd.com/libs/datatable/1.10.11/Chinese.json'
                    },
                    ajax: {
                        type:'GET',
                        url: "<?php echo site_url();?>/xk-api/hk/v1/reward/back/comment",
                        // dataSrc:'data',   指定服务端返回的数据源
                        // success:function(res){   调服务端返回的数据源
                        //     console.log(res);
                        // }
                    },
                    // 这里为表格绑定数据
                    "columns": [
                        { data : 'id'},
                        { data : 'employee_display_name'},
                        { data : 'employee_wx_headimg',   // 对服务端返回的数据进行修改(e.g. 1男 2 女)
                            render:function( data, type, full, meta ){
                                return '<img class="wxhead" width="30px" src="' +
                                data + '"><span>' + full.employee_wx_nickname + '</span>';
                            }
                        },
                        { data : 'employee_realname'},
                        { data : 'employee_store_id'},
                        { data : 'employee_store_name'},
                         { data : 'customer_wx_headimg',
                            render:function( data, type, full, meta ){
                                return '<img class="wxhead" width="30px" src="' +
                                data + '"><span>' + full.customer_wx_nickname + '</span>';
                            }
                        },
                        { data : 'comment_content',
                            render: function(data,type){
                                        // if( data.length > 10){
                                            // return data.substr(0,10)+ "......";
                                        // }else{
                                            return data;
                                        // }
                                    }
                        },
                        { data : 'serve_stars'},
                        { data : 'status',
                            render: function(data,type){
                                        if(data == 0){
                                            return '隐藏';
                                        }else{
                                            return '显示';
                                        }
                                    }
                        },
                        // { data : 'create_date'},
                        { data : 'update_date'},
                        { data : 'remark'},
                        { data : null    // 留空给 操作一行用
                        }
                    ],
                    columnDefs:[{   // http://datatables.club/reference/option/columnDefs.html
                        targets: 12,
                        render: function (data, type, row, meta) {
                            var html = '';
                            html += '<a type="button" id="editrow" class="btn btn-info btn-block btn-sm editrows" href="#"  >编辑</a>';
                            html += '<a type="button" id="delrow" class="btn btn-danger btn-block btn-sm" href="#"  >删除</a>'
                            return html;
                        }
                    },
                        { "orderable": false, "targets": 12 },
                    ]
                })
                // 这个是多过滤

  1. 删除的模态框隐藏/显示的控制
  // 顾客评价数据删除
                jQuery('#table_comments_log tbody').on( 'click', 'a#delrow', function () {
                    var data = tables_comments.row( jQuery(this).parents('tr') ).data();
                    var id   = data.id;
                    jQuery('#url').val( id );
                    jQuery("#delcfmModel").modal("show");
                });

  1. 删除的模态框(拷自百度
 <!-- 删除的模态框 -->
        <div class="modal fade" id="delcfmModel">  
          <div class="modal-dialog">  
            <div class="modal-content message_align">  
              <div class="modal-header">  
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>  
                <h4 class="modal-title btn-danger">提示信息</h4>  
              </div>  
              <div class="modal-body">  
                <p>确定删除后,该条数据将不可恢复,是否真的要继续?</p>  
              </div>  
              <div class="modal-footer">  
                 <input type="hidden" id="url"/>  
                 <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>  
                 <a  id="delSubmit" class="btn btn-success" data-dismiss="modal">确定</a>  
              </div>  
            </div><!-- /.modal-content -->  
          </div><!-- /.modal-dialog -->  
        </div><!-- /.modal --> 

  1. 删除api实现
 jQuery('#delSubmit').click(function(){
                    // 拿到隐藏的input的id值
                    var id = jQuery('#url').val();
                    jQuery.ajax({
                            // processing:true,   // 打开信息提醒
                            url: "Your delete api,
                            type: 'DELETE',
                            dataType: 'json',
                            data: {
                               
                            },
                            // success:function(res){
                            //     console.log(res);
                            // }
                        })
                        .done(function(data) {
                            // console.log(data.items)
                            if (data.code == 0) {
                                // alert("删除成功")
                                // 重绘
                                tables_comments.ajax.reload();  
                            };
                        })
                        .fail(function() {
                            alert("error");
                        });
                })

删除做完了,修改就都知道了吧,贴下删除的接口传参。

 //顾客的评价修改页面
                jQuery('#comment-edit-sure').click(function(){
                    // 获取用户输入的信息
                    var id              = jQuery('#comment-id').val();
                    var comment_status  = (jQuery('#comment-status').val() == "显示")?'1':'0';
                    var comment_remark  = jQuery('#comment-remark').val();
                    // console.log( id+comment_status+comment_remark )
                    jQuery.ajax({
                        url: "<?php echo site_url();?>/xk-api/hk/v1/reward/back/" + id,
                        type: 'PUT',
                        dataType: 'json',
                        data: {
                            // id:id, Your data
                            status:comment_status,
                            remark:comment_remark
                        },
                    })
                    .done(function(data) {
                        // console.log(data)
                        jQuery("#myModal").modal("hide");
                        if (data.items != false) {
                            tables_comments.ajax.reload();
                        }else{
                            //console.log(data)
                        };
                    })
                    .fail(function() {
                        alert("error");
                    });
                })

还不是美滋滋

相关文章

网友评论

      本文标题:基于DataTables的数据操作demo

      本文链接:https://www.haomeiwen.com/subject/skrwoxtx.html